zoukankan      html  css  js  c++  java
  • oralce迁移Mysql问题总结

    最近从oracle数据库迁移到Mysql, 总结了一些不兼容和需要注意的地方,持久层用的Mybatis

    1 guid尽量用代码生成

    现象:sys_guid()  mysql报错,mysql对应的为UUID(),但是带横线,需要替换为  replace(uuid(),'-',''),所以最好用代码生成, 这样直接就通用了

    2 最好不用nvl、ifnull等特性函数

    现象:nvl为oracle特性函数,在mysql报错,统一替换为case when then else end

    3 子查询请带上别名

    现象:子查询不带别名oracle可以通过,mysql语法错误

    4 最好不用decode()函数

    现象:同nvl,替换为case when then else end

    5 删除语句不要给表加别名

    现象:mysql删除语句不支持表别名(但是Oracle支持,所以为了通用删除时不要使用别名)

    6 删除语句最好加上from关键字

    现象:   mysql删除必须是delete from  table,oracle可以是delete table为了通用要加上from

    7 字段别名统一大写

    现象:mysql没有自动转换为大写,oracle会自动转换为大写,为了代码能统一取值,别名统一大写

    8 分页查询没有找到兼容的写法,找到简单改写方法

    简单修改的办法:rownum替换为@num,不然就是重新写一个mysql分页

    原oracle

     

     

     

    mysql

     

     

     

    9 批量插入不要用insert all,用兼容写法

    现象:insert all等语法mysql不支持,报错

    改为

     

     

    10 日期无法兼容,有转换方法

    现象:之前的to_date写法导致Mysql报错

    改为拆分两份

     

     

    11不用 || 连字符

    现象:mysql不支持,统一改为concat(str,str2)函数

    12 concat函数只能使用两个参数

    现象:不能使用concat(str,str2,str3),mysql支持,oracle不支持

    13 wm_concat()行列转换无法兼容,有转换方法

    方案:oracle wm_concat() 对应mysql group_concat()

    14 从oracle迁移到mysql的数据,number类型被Mysql默认成了这个鬼样子(不确定是不是迁移引起)

    现象:mysql显示类型

     

     

    导致报错

     

     

    方案:修改字段小数点为0,如果确定不是迁移过程引起,则需要整理脚本统一修改

    其实1、2、3、4、5、6、7、9、11、12项是可以加入开发规范和开发禁用列表的

     

  • 相关阅读:
    python+selenuim自动化测试(六)上传文件
    python+selenuim自动化测试(七)滚动条的操作
    python+selenuim自动化测试(三)鼠标的操作
    python+selenuim自动化测试(四)frame嵌套页面元素定位
    python+selenuim自动化测试(二)
    关于Django Specifying a namespace in include() without providing an app_name
    Xadmin 改造Django后台
    13-1 userprofile注册以及django的权限管理
    python-django开发(django2.0.9+xadmin0.6.1)填坑
    django xadmin 安装和使用
  • 原文地址:https://www.cnblogs.com/cs-forget/p/7977853.html
Copyright © 2011-2022 走看看