更新时间:2024-06-25 GMT+08:00
业务语法转换迁移
- 假设Oracle有原业务SQL如下,将其保存成query.sql格式文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
-- HAVING子句必须出现在GROUP BY子句后面,而Oracle允许HAVING在GROUP BY子句之前或之后。在目标数据库中,HAVING子句被移至GROUP BY子句之后 SELECT id, count(*), sum(remain_users) FROM LYC.APEX2_DYNAMIC_ADD_REMAIN_TEST HAVING id <= 5 GROUP BY id; -- UNIQUE关键字迁移为DISTINCT关键字 SELECT UNIQUE add_users FROM LYC.APEX2_DYNAMIC_ADD_REMAIN_TEST; -- “NVL2(表达式,值1,值2)”函数用于根据指定的表达式是否为空来确定查询返回的值。如果表达式不为Null,则NVL2返回“值1”。如果表达式为Null,则NVL2返回“值2” SELECT NVL2(add_users, 1, 2) FROM LYC.APEX2_DYNAMIC_ADD_REMAIN_TEST SHERE rownum <= 2;
- 将1的query.sql文件放在解压后的DSC文件夹的input目录下。
- 在runDSC.bat当前目录下shift+鼠标右键,选择在此处打开power shell窗口,并执行转换。
其中D:\DSC\DSC\input、D:\DSC\DSC\output、D:\DSC\DSC\log请替换为实际的DSC路径。
1
.\runDSC.bat --source-db Oracle --input-folder D:\DSC\DSC\input --output-folder D:\DSC\DSC\output --log-folder D:\DSC\DSC\log --application-lang SQL --conversion-type bulk --target-db gaussdbA
- 转换完成后,在output路径下生成转换后的DML文件。
父主题: 迁移业务SQL