数据从MySQL迁移到Oracle注意点,自我总结

1. 单双引号的处理

MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和查询的时候要注意。

2.关键字的处理

MYSQL使用关键字作为别名的处理方式:使用符号将关键字包起来即可,但是在Oracle中是不行的,Oracle中使用关键字作为别名需要使用 “” 双引号包起来

一般报这个错 ,可能就是关键字的原因 修改为:

3.表名、字段名长度的处理

MYSQL中的长度限制为64,但是在Oracle中的长度限制为30,这其中包括(字段、表 )别名长度也不能超过30

4.日期字段的处理

MYSQL日期字段分DATE和TIME两种,Oracle日期字段只有DATE,包含年月日时分秒信息,MYSQL用当前数据库的系统时间为now() 或者 SYSDATE() , 精确到秒,Oracle用当前数据库的系统时间为SYSDATE, 精确到秒。

Oracle to_date() 与 to_char() 日期和字符串转换:

把日期转为字符串格式 : to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
把字符串转为日期格式 : to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:ss')
复制代码

Mysql DATE_FORMAT() 日期和字符串转换:

把字符串转为日期格式 : DATE_FORMAT('2017-09-20 08:30:45','%Y-%m-%d %H:%i:%S')
把日期转为字符串格式 : DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S')
复制代码

日期字段的数学运算公式有很大的不同。MYSQL找到离当前时间7天用 DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)ORACLE找到离当前时间7天用 DATE_FIELD_NAME >SYSDATE - 7;

mysql: 可以用Date类型的日期或者字符串进行时间比较,但是oracle:必须用to_date()函数和to_char()函数配合转换成与数据库字段统一的类型,然后进行比较

5.字符串的模糊查询比较

MYSQL里用 CONCAT('%', 字符串, '%') , ORACLE里可以用 字段名 like '%字符串%' 但这种方法不能使用索引, 速度不快,用字符串比较函数 instr(字段名,'字符串')>0 会得到更精确的查找结果

6.有嵌套查询,MYSQL最外层一定要加别名,Oracle 可以不用

7.拼接字符串在Oracle中用|| , MySQL中用concat('a','b','c')

8.Orcale用decode()来转换数据,mysql用case when

case..when 用法:

case sex
when '1'  then '男'
when '2'  then '女'
else '其他' end
复制代码

decode() 用法:

decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
复制代码

9.分页的SQL语句的处理

Mysql 中分页使用limit 即可

select * from test limit 3,5;--查询test从3开始,5条数
复制代码

Oracle使用rownum分页,rownum 从1 开始

select *
  from (select rownum rn, a.*
          from table_name a
         where rownum <= x  / / 结 束行,x = startPage * pageSize)
 where rn > y;
/ / 起始行,y =(startPage - 1) * pageSize
复制代码

有一些下面的情况,Mysql 中符合条件的查一条:

select * from test limit 1
复制代码

在Oracle中应该可以通过rownum实现:

select * from test where rownum <=1
复制代码

10.Oracle与Mysql存储过程区别 blog.csdn.net/wb96a1007/a…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值