1,oracle中的is null既可以判断数据库字段为null和空,但是在mysql中is null只能判断为null,无法判断为空,所以is null 就要换成 :(ISNULL(pub_user.subcorpdoc_id) || LENGTH(trim(pub_user.subcorpdoc_id))<1)
2,substr函数: 在oracle中substr函数是从0或者从1开始都是从首位开始截取,但是在mysql的起始位置只能从1开始,
书写方式一样:substr(字段名(string) , 起始位置(int) , 截取长度(int))
3,派生表:Every derived table must have its own alias
select语句嵌套查询,在mysql中出现派生表,需要从最里层开始执行,最后添加表名
4,数字和sql之间没有距离:在抓取到sql放入mysql中运行时,不要进行美化,因为有一些是连在一起,美化后就分开了。
5,rownum伪列:在oracle中的rownum就类似;mysql的limit
是分页的函数。rownum>=5 就等于limit 0,5
6,nvl:oracle中的nvl判断某个值是否为空值,若不为空值则输出,若为空值,返回指定值。换成mysql的ifnull就可以
7,oracle中的int函数:转换成MySQL中的整数类型就是 : SIGNED
8, oracle中删除表记录delete no_yrhquery,delete直接跟表名,但是在mysql中delete后面还需要加一个from才可以。
9,事务超时:优化sql,解释sql成分,建立索引,索引建立时不能对这个表进行读写,会造成锁表。
10,oracle中的to char(sysdate,'yyyy-MM-dd')是查看当前日期:换成mysql中应该写成date_format( now( ), '%Y-%m-%d' )
11, oracle中的事务超时,可以把时间从1200改为tx.setTimeout(2400)
12,oracle中的导出报错,本地导出设备未就绪 ,下载文件出错 ,把路径改为D。记得看路径
接口测试:
做接口测试的时候,分两种,上传和下载。
先在代码里把路径打印下来:log.info("FTP下载路径为============" + "./" + fvo.getServeroutpath());
下载中文版本的ftp,配置,连接成功,把规定的格式文件放入路径里。
开始运行接口,抓取sql。查看数据库是否保存本地数据库。
13,oracle中的decode函数,在mysql中需要改成case when then
14,oracle中的instr函数:是查看字符在字符串的第几个位置,替换成mysql中locate函数,但是需要把前后位置跟oracle相反。
15,oracle与mysql中的日期和字符相互转换方法
date_format(date,'%Y-%m-%d') -------------->oracle中的to_char(date,'yyyy-MM-dd');
str_to_date(date,'%Y-%m-%d') -------------->oracle中的to_date(date,'yyyy-MM-dd');
16 , oracle中的decode函数相当于mysql的if函数,或者用case when替代
17,oracle中的trunc()函数,类似截取函数,按照指定格式截取
输入的数据。select trunc(sysdate, 'iw') from dual--本周第二天(周日为第一天)
在mysql中应该改为select DATE_FORMAT( DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) DAY), '%Y-%m-%d ')
18 , 在oracle中where 1=1order by 之间缺少空格是可以运行的,但是在mysql中不可以。但是在mysql美化后就可以 运行,代码还是不能运行
19 , 迁移数据库一定要把索引和外键迁移过来,要不然会导致查询很慢
20, oracle的日期转换函数:
to_char()将日期转按照一定格式换成字符类型
date_format(now(),'%Y-%m-%d')
oracle中的to_char(date,'yyyy-MM-dd');
21, oracle中的trunc函数:
select trunc(sysdate,'mm') from dual 截取到当前月
select trunc(sysdate,'dd') from dual) 截取到当前日
22, mysql查询当前月份第一天:
select DATE_ADD(curdate(),interval -day(curdate())+1 day)
mydql查询当前时间到日:
select curdate()
23, oracle中的to number函数替换为mysql中的cast
还要加上类型。
select cast(11 as unsigned int) /*整型*/
select cast(11 as decimal(10,2)) /*浮点型*/