最近从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. centos 7 防火墙firewall 与iptables 的一些常用命令

    CentOS 7的防火墙配置跟以前版本有很大区别,CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本使用iptables不一样. firewall常用命令 service fir ...

  2. 你遇到了吗?Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.fs.FileAlreadyExistsException)

    我在使用 Structured Streaming 的 ForeachWriter,写 HDFS 文件时,出现了这个异常 这个异常出现的原因是HDFS作为一个分布式文件系统,支持多线程读,但是不支持多 ...

  3. 使用Bind提供域名解析服务(反向解析)

    小知识: 一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP识别对方主机,那么就需要DNS域名解析服务了. DNS域名 ...

  4. CSPS模拟 94

    以后干脆不要在准备提交的代码里放调试信息. 再也不忘删printf可是memset还是看不见... T1 玄学错误,不想研究.skyh帮我研究出来了.HACKDATA:1 1 T2 傻逼做法. 发现一 ...

  5. Spring Cloud gateway 六 Sentinel nacos存储动态刷新

    微服务当前这么火爆的程度,如果不能学会一种微服务框架技术.怎么能升职加薪,增加简历的筹码?spring cloud 和 Dubbo 需要单独学习.说没有时间?没有精力?要学俩个框架?而Spring C ...

  6. access,trunk,hybrid端口分析

    1.access 接收:当数据没有tag时打上pvidtag进入,若有则看是否与pvid相等,相等则接收,不想等则丢弃. 转发:看tag是否等于pvid,若等则去tag发送,否则不处理. 2.trun ...

  7. vmware centos共享文件夹

    vmware centos共享文件夹 查看VMware Tools 是否安装成功 <pre>vmware-hgfsclient</pre> 出现共享文件夹<pre> ...

  8. php charles 使用方法

    php charles 使用方法 打开charles 点击help菜单点击local ip address 可以获取本地ip 手机上选择代理这个ip 端口8888 然后手机访问网页 charles会弹 ...

  9. Windows下编译最新版ChezScheme

    据说ChezScheme是最快的神级编译器,一秒钟几百万行,王垠说的2秒内编译自身绝不是夸张(看这里<揭秘Chez Scheme>,Scheme中文社区).ChezScheme由美国印第安 ...

  10. 了解Spring的基本概念

    参考资料:https://www.jianshu.com/p/1c483bd8fd6d 在正式学习Spring框架之前,肯定有很多疑问,比如说: 1.Spring中经常出现的IOC.AOP.DI是什么 ...