You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将生成INSERT语句的SQL脚本转换为Oracle?是否有转换工具?

SQL Server转Oracle INSERT生成脚本的转换方案及工具建议

转换后的Oracle脚本

DECLARE
    START_YEAR NUMBER := 2010;
    END_YR NUMBER := 2010;
    MONTH NUMBER := 1;
    BEGIN_DATE VARCHAR2(10);
    END_DATE VARCHAR2(10);
    CURRENT_DT VARCHAR2(16);
BEGIN
    WHILE START_YEAR <= END_YR LOOP
        WHILE MONTH <= 12 LOOP
            -- 计算当月第一天
            BEGIN_DATE := TO_CHAR(ADD_MONTHS(TO_DATE(START_YEAR || '-01-01', 'YYYY-MM-DD'), MONTH - 1), 'YYYY-MM-DD');
            -- 计算当月最后一天
            END_DATE := TO_CHAR(LAST_DAY(ADD_MONTHS(TO_DATE(START_YEAR || '-01-01', 'YYYY-MM-DD'), MONTH - 1)), 'YYYY-MM-DD');
            -- 获取当前格式化日期
            CURRENT_DT := TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI');
            
            DBMS_OUTPUT.PUT_LINE('INSERT INTO Mem_TXN (VALUE, BEGIN_DATE, END_DATE, CREATED_BY, CREATED_DATE, MODIFIED_BY, MODIFIED_DATE) ' ||
                                 'VALUES (''RGLR'', ''' || BEGIN_DATE || ''', ''' || END_DATE || ''', ''admin'', ' ||
                                 '''' || CURRENT_DT || ''', ''admin'', ''' || CURRENT_DT || ''');');
            
            MONTH := MONTH + 1;
        END LOOP;
        MONTH := 1;
        START_YEAR := START_YEAR + 1;
    END LOOP;
END;
/

关键语法差异说明

  • 变量声明:Oracle使用DECLARE块集中声明变量,直接用:=赋值,无需SQL Server的SELECT赋值逻辑;数据类型用NUMBER替代INT,字符串类型用VARCHAR2。
  • 日期处理:用ADD_MONTHS替代DATEADD做月份偏移,TO_DATE/TO_CHAR完成日期与字符串的互转;LAST_DAY函数可直接获取当月最后一天,比SQL Server的写法更简洁。
  • 输出逻辑:用DBMS_OUTPUT.PUT_LINE替代PRINT,执行前需确保会话开启输出(比如执行SET SERVEROUTPUT ON)。
  • 字符串拼接:Oracle用||替代+做字符串连接操作。
  • 表名规则:Oracle默认无需dbo.前缀,直接使用表名即可。

可用的SQL转换工具

  • Oracle SQL Developer Migration Workbench:Oracle官方自带迁移工具,可直接导入SQL Server脚本,自动转换大部分语法,还会生成迁移报告标注未自动转换的内容。
  • SQLines:支持SQL Server到Oracle的语法转换,能处理存储过程、函数、批量脚本等,有免费版和付费版,转换准确率较高。
  • ApexSQL Convert:专注数据库脚本跨平台转换,支持多种数据库间的语法迁移,适合复杂脚本的批量处理场景。

内容的提问来源于stack exchange,提问作者Deepak Ananth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 01:15:46