mysql与oracle的对比,mysql迁移到oracle

mysql迁移到oracle以及mysql与oracle的对比

本文主要记录java开发中,由于项目需要,数据库从mysql迁移到oracle的过程,mysql与oracle数据库的对比,以及迁移过程中的一些常见报错

mysql与oracle的常见语法区别

1、日期操作

日期转化为字符串格式: mysql: date_format() oracle: to_char() 字符串转化为日期格式:
mysql: str_to_date() oracle: to_date()

2、分页

mysql中使用limit关键字:limit oracle中使用rownum关键字
具体对比:https://blog.csdn.net/crazylzxlzx/article/details/53698366

3、非空判断

mysql中使用IFNULL()函数 例:IFNULL(A,B) 如果A不为空则为A,否则为B
IFNULL(A,B,C) 如果A不为空则为B,否则为C oracle中使用NVL函数 mysql中使用IFNULL()函数 例:IFNULL(A,B) 如果A不为空则为A,否则为B
IFNULL(A,B,C) 如果A不为空则为B,否则为C

4、GROUP_BY关键字

mysql中,select可以查询任何字段 oracle中,select只能查询group_by分组的内容

5、concat函数

concat用来拼接字符串,在mysql中可以拼接任意数量的字符串,在oracle中只能拼接两个字符串,
两个以上的字符串用"||"来拼接

6、关键字

oracle中的resource等关键字需要加双引号

7、mysql中无find_in_set()函数

关于mysql中的find_in_set函数详解:https://www.cnblogs.com/xiaoxi/p/5889486.html

mysql迁移到oracle中的报错汇总

1、; uncategorized SQLException for SQL []; SQL state [99999]; error
code [17004]; 无效的列类型: 1111; nested exception is java.sql.SQLException:
无效的列类型: 1111 解决方法:给参数设置jdbcType的类型 2、Cause:
2、java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字
解决方法:参数值和给定的参数类型不匹配,例如recdate,uploaddate 3、Error querying database.
3、Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
解决方法:可能是某些字段上有单引号之类的,关键字resource未加引号之类的 4、Cause:
4、java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字
解决方法;from旁边的字段有问题 5、Cause: java.sql.SQLSyntaxErrorException:
5、ORA-00932: 数据类型不一致: 应为 -, 但却获得 NCLOB
存在clob类型的字段,需要先转化成String再和String类型比较(to_char()转化)
6、列说明无效
可能是resource之类的关键字未加双引号

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值