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的建表脚本就好了,不用管改表脚本了。

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

  • 相关阅读:
    把一个数组 赋值给一个新数组
    上传图片时进行压缩
    input上传文件 显示进度条
    vue 后台接口返回文件流地址的下载
    时间戳转换
    JS 两个含有部分相同属性的对象如何快速给对应的key赋值
    javascript中把一个数组的内容全部赋值给另外一个数组
    微信小程序wxs如何使用
    优化内存
    解决position:fiexd相对父元素定位
  • 原文地址:https://www.cnblogs.com/liuyouying/p/6367225.html
Copyright © 2011-2022 走看看