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数据库迁移的问题,好好总结 ...
随机推荐
- SpringBoot整合MybatisPlus3.X之自定义Mapper(十)
pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...
- MyBatis与Spring的整合实例详解
从之前的代码中可以看出直接使用 MyBatis 框架的 SqlSession 访问数据库并不简便.MyBatis 框架的重点是 SQL 映射文件,为方便后续学习,本节讲解 MyBatis 与 Spri ...
- 在windows下用with open 打开html文件报gbk错误
with open('xx.html' , 'rb' ,enconding='utf-8')as f: 可能原因是由于HTML是在Linux下开发的,与windons 系统编码不兼容
- 百度地图Javascript API 调用示例
调用示例 !<!DOCTYPE html> <html> <head> <title>百度地图DEMO</title> </head& ...
- C++智能指针类型转换
#include <iostream> #include <memory> struct Base { int a; virtual void f() const { std: ...
- Ambari 集群时间同步配置教程
本文原始地址:https://sitoi.cn/posts/27560.html 步骤 在时间同步主节点创建 ntp.conf 文件 在时间同步从节点上创建 ntp.conf 文件 修改所有节点时区 ...
- [考试反思]1029csp-s模拟测试92:弱智
我只能这么评价我自己. 看这个提交时间...我没话可说... T1半个世界都A了还是切不掉.又一次挂细节. T2不会证明的乱搞(虽然可以证明)A了没什么可说的算是水过. T3之前水过的题(打的次正解) ...
- php [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers)错误解决方法
php [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers)错误解决方法修改 ...
- 一分钟带你学会利用mybatis-generator自动生成代码!
目录 一.MyBatis Generator简介 二.使用方式 三.实战 之前的文章<SpringBoot系列-整合Mybatis(XML配置方式)>介绍了XML配置方式整合的过程,本文介 ...
- activemq 的延迟队列和幂等性检查
一. 延迟消息队列 1. 在提交支付之后,可以发送一个延迟检查的队列,来主动查询用户在支付宝上的支付状态 在mq的配置/config/activeMq.xml的broker实例上配置 schedule ...