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项是可以加入开发规范和开发禁用列表的
oralce迁移Mysql问题总结的更多相关文章
- 迁移mysql数据到oracle上
转自:http://www.cnblogs.com/Warmsunshine/p/4651283.html 我是生成的文件里面的master.sql里面的sql,一个一个拷出来的. 迁移mysql数据 ...
- Linux Centos 迁移Mysql 数据位置
Linux Centos 迁移Mysql 数据位置 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysq ...
- Mysql 利用拷贝data目录文件的方式迁移mysql数据库
Mysql 利用拷贝data目录文件的方式迁移mysql数据库 步骤如下: 1.首先要确定data目录 这个问题困扰了我很久,因为网上的帖子大部分只是说拷贝mysql数据库目录下的data文件夹中的数 ...
- HBase——使用Put迁移MySql数据到Hbase
先上code: /** * 功能:迁移mysql上电池历史数据到hbase * Created by liuhuichao on 2016/12/6. */ public class MySqlToH ...
- ORACLE 迁移MYSQL 随笔
1.把服务器上的ORALCE 数据库导成DMP,然后导入本机的临时库 2.先把ORACLE 表中的DATE 改为TIMESTAMP; a.先建立个表 create table type_table_i ...
- oracle迁移mysql数据库注意
oracle转mysql修改: . substr() substr( string , 0, 10) 这里测试 必须从 第一位获取 既是 substr(string , 1 , 10)2. to_ch ...
- Python迁移MySQL数据到MongoDB脚本
MongoDB是一个文档数据库,在存储小文件方面存在天然优势.随着业务求的变化,需要将线上MySQL数据库中的行记录,导入到MongoDB中文档记录. 一.场景:线上MySQL数据库某表迁移到Mong ...
- oracle迁移mysql数据库注意(转)
oracle转mysql修改: 1. substr() substr( string , 0, 10) 这里测试 必须从 第一位获取 既是 substr(string , 1 , 10)2. to_c ...
- 用sqlyog迁移mysql数据库
本人大学大学基本就学怎么打游戏了,游戏玩的还不太好,大三的时候突然觉醒报了某培训,然后就出来工作了.这导致许多东西很不扎实,都是在工作中慢慢摸索.今天处理了一个关于mysql数据库迁移的问题,好好总结 ...
随机推荐
- p6spy打印SQL
一 Springboot项目 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</a ...
- ThinkPHP5.1 反序列化利用链
笔记里直接复制出来的 1 composer直接获取框架代码 ➜ composer create-project --prefer-dist topthink/think tp5137 ➜ ...
- AHOI2018 排列
首先是那个非常吃shi的题意,想好久一会就能发现题里面的意思是: 如果某一个数的值为x,那么它必须排在第x个数后面. 然后我们就可以发现形成了一棵树,第i个数的父亲是i,如果出现了环就说明无解. 于是 ...
- Kettle6.1连接MongoDB报错
配置好mongodb连接之后,点击预览报下面的错: 报错: java.lang.NoClassDefFoundError: javax/crypto/spec/PBEKeySpec a ...
- 使用Typescript重构axios(二十三)——添加withCredentials属性
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- CHRONY 时间服务器
时间同步服务chrony ntp network time Protocol之前使用的同步协议 chrony ntp协议的实现,兼容网络中的ntp服务(centos7之后就不再使用ntp,转而使用ch ...
- php pdo mysql存入转义
php pdo mysql存入转义 因为存入html都是自动转义 相当于PHP的htmlspecialchars 所以读取的时候要加htmlspecialchars_decode
- mysql双主互为主从配置
在使用双主互为主从的模式前提是互为主从的两个数据库,表的主键必须是自增的. 环境不多说了 ,多台mysql单实例或单台多实例都可以.多实例的配置请参考:https://www.cnblogs.com/ ...
- Reporting service个人使用经验
(此文章是从自己写的Word文档里复制过来的,图没有了,文字也有些乱,凑合看吧) 部署环境 Windows server 2012 R2 软件环境 安装完整的sqlsever2012,IIS服务 需要 ...
- C#:转义字符 \n 和 \r 的区别
1.\n,换行符,作用是换行符之后的字符换到下一行: 例如:1234/n567 得出的结果是1234 567 2.而\r,回车符,作用是回车符之后的字符会回到当前行的最前面,把回车符之前的字符覆 ...