最近从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项是可以加入开发规范和开发禁用列表的

oralce迁移Mysql问题总结的更多相关文章

  1. 迁移mysql数据到oracle上

    转自:http://www.cnblogs.com/Warmsunshine/p/4651283.html 我是生成的文件里面的master.sql里面的sql,一个一个拷出来的. 迁移mysql数据 ...

  2. Linux Centos 迁移Mysql 数据位置

    Linux Centos 迁移Mysql 数据位置 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysq ...

  3. Mysql 利用拷贝data目录文件的方式迁移mysql数据库

    Mysql 利用拷贝data目录文件的方式迁移mysql数据库 步骤如下: 1.首先要确定data目录 这个问题困扰了我很久,因为网上的帖子大部分只是说拷贝mysql数据库目录下的data文件夹中的数 ...

  4. HBase——使用Put迁移MySql数据到Hbase

    先上code: /** * 功能:迁移mysql上电池历史数据到hbase * Created by liuhuichao on 2016/12/6. */ public class MySqlToH ...

  5. ORACLE 迁移MYSQL 随笔

    1.把服务器上的ORALCE 数据库导成DMP,然后导入本机的临时库 2.先把ORACLE 表中的DATE 改为TIMESTAMP; a.先建立个表 create table type_table_i ...

  6. oracle迁移mysql数据库注意

    oracle转mysql修改: . substr() substr( string , 0, 10) 这里测试 必须从 第一位获取 既是 substr(string , 1 , 10)2. to_ch ...

  7. Python迁移MySQL数据到MongoDB脚本

    MongoDB是一个文档数据库,在存储小文件方面存在天然优势.随着业务求的变化,需要将线上MySQL数据库中的行记录,导入到MongoDB中文档记录. 一.场景:线上MySQL数据库某表迁移到Mong ...

  8. oracle迁移mysql数据库注意(转)

    oracle转mysql修改: 1. substr() substr( string , 0, 10) 这里测试 必须从 第一位获取 既是 substr(string , 1 , 10)2. to_c ...

  9. 用sqlyog迁移mysql数据库

    本人大学大学基本就学怎么打游戏了,游戏玩的还不太好,大三的时候突然觉醒报了某培训,然后就出来工作了.这导致许多东西很不扎实,都是在工作中慢慢摸索.今天处理了一个关于mysql数据库迁移的问题,好好总结 ...

随机推荐

  1. p6spy打印SQL

    一 Springboot项目 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</a ...

  2. ThinkPHP5.1 反序列化利用链

    笔记里直接复制出来的   1 composer直接获取框架代码   ➜  composer create-project --prefer-dist topthink/think tp5137 ➜  ...

  3. AHOI2018 排列

    首先是那个非常吃shi的题意,想好久一会就能发现题里面的意思是: 如果某一个数的值为x,那么它必须排在第x个数后面. 然后我们就可以发现形成了一棵树,第i个数的父亲是i,如果出现了环就说明无解. 于是 ...

  4. Kettle6.1连接MongoDB报错

    配置好mongodb连接之后,点击预览报下面的错: 报错: java.lang.NoClassDefFoundError: javax/crypto/spec/PBEKeySpec         a ...

  5. 使用Typescript重构axios(二十三)——添加withCredentials属性

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  6. CHRONY 时间服务器

    时间同步服务chrony ntp network time Protocol之前使用的同步协议 chrony ntp协议的实现,兼容网络中的ntp服务(centos7之后就不再使用ntp,转而使用ch ...

  7. php pdo mysql存入转义

    php pdo mysql存入转义 因为存入html都是自动转义 相当于PHP的htmlspecialchars 所以读取的时候要加htmlspecialchars_decode

  8. mysql双主互为主从配置

    在使用双主互为主从的模式前提是互为主从的两个数据库,表的主键必须是自增的. 环境不多说了 ,多台mysql单实例或单台多实例都可以.多实例的配置请参考:https://www.cnblogs.com/ ...

  9. Reporting service个人使用经验

    (此文章是从自己写的Word文档里复制过来的,图没有了,文字也有些乱,凑合看吧) 部署环境 Windows server 2012 R2 软件环境 安装完整的sqlsever2012,IIS服务 需要 ...

  10. C#:转义字符 \n 和 \r 的区别

    1.\n,换行符,作用是换行符之后的字符换到下一行: 例如:1234/n567    得出的结果是1234 567 2.而\r,回车符,作用是回车符之后的字符会回到当前行的最前面,把回车符之前的字符覆 ...