zoukankan      html  css  js  c++  java
  • Oracle学习 第19天 SqlServer数据迁移Oracle 存储过程

      

    这次是远程到公司服务器上测试,把Oracle Sql Developer和JTDS复制上去执行,都是绿色版直接运行就可以。

    迁移速度更快了,昨晚是连VPN,现在直接在服务器上迁移,一下就迁移完了。

    刚才批量把存储过程的加密语句去掉了(即删除WITH ENCRYPTION),看下存储过程的移植

    1、存储过程不是很令人满意,21个存储过程无法转换,9个存储过程转换成功,只有3个未报错,6个编译未通过,需要手动调整。

    2、转换时变量和参数会自动加上前缀,找了一下可以设置

    不知那个【标识列】是什么意思,是否自增?没勾上也是有触发器和序列啊

    【本机联接增强】也不知什么意思,是否Sql和Oracle在同一台服务器上时能提高效率?

    3、转换的存储过程格式化还可以,挺整齐,就是一个非常不好,原先存储过程里有个参数Action,就像switch效果一样,根据传进来的参数执行相应脚本。本来SqlServer格式是:

    IF @Action = 'XX'

    BEGIN

      XXX

    END

    ELSE IF @Action = 'XXX'

    BEGIN

      XXXX

    END

    现在转成Oracle后,变成

    IF v_Action = 'XX' THEN

    BEGIN

      XXX

    END

    ELSE

      IF v_Action = 'XX' THEN

      BEGIN

        XXX

      END

      END IF;

    END IF;

    转换器使用了ELSE再加IF,而不是ELSIF,这样就造成不断地缩进,本来是平行的结构,变成了缩进分级的结构。

    还找不到地方设置让转换器选择ELSIF的规则。

    4、很多存储过程里面是拼字符串来执行的,这部份肯定Oracle是没法自动转换的(因为是字符串,转换器肯定不会去把字符串当语法来解析),字符串里面需要手动调整。

    5、SqlServer的sp_executesql不能识别及转换

    这样看来,迁移最大问题还是存储过程。

    建表/改表脚本虽然也需要转换,但迁移后直接在PL/SQL里生成Oracle的建表脚本就好了,不用管改表脚本了。

    函数转换都没问题,都是比较简单的函数,一些转换数字/金额之类的

  • 相关阅读:
    短信发送器小案例 smsManager
    短信大全小案例
    JavaScript学习总结(4)——JavaScript数组
    JavaScript学习总结(3)——JavaScript函数(function)
    JavaScript学习总结(2)——JavaScript数据类型判断
    JavaScript学习总结(2)——JavaScript数据类型判断
    JavaScript学习总结(1)——JavaScript基础
    JavaScript学习总结(1)——JavaScript基础
    Spring学习总结(6)——Spring之核心容器bean
    Spring学习总结(6)——Spring之核心容器bean
  • 原文地址:https://www.cnblogs.com/liuyouying/p/6367225.html
Copyright © 2011-2022 走看看