数据从MySQL迁移到Oracle注意点,自我总结 太过爱你忘了你带给我的痛 2022-01-20 10:57 213阅读 0赞 **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…][blog.csdn.net_wb96a1007_a] [blog.csdn.net_wb96a1007_a]: https://link.juejin.im?target=https%3A%2F%2Fblog.csdn.net%2Fwb96a1007%2Farticle%2Fdetails%2F81129081
还没有评论,来说两句吧...