1、日期处理
mysql : DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')
oracle: TO_CHAR(SYSDATE,'YYYY-MM-DD hh24:mi:ss')
2、nvl函数
mysql: ifnull(A.USER_KPI,0)
oracle: NVL(A.USER_KPI,0)
3、to_number
oracle 的 to_number
mysql不需要
4、关键字、保留字
涉及到关键字,mysql关键字需要加上``号
mysql: PARA_VALUE as `KEY`
oracle : PARA_VALUE as KEY
5、rownum
Unknown column 'rownum' in 'where clause'
oracle自定义sql中如果使用了rownum=1 mysql中可以写成limit
6、大小写问题
MYSQL在LINUX下数据库名、表名、列名、别名大小写规则如下:
1.数据库名与表名是严格区分大小写的
2.表的别名是严格区分大小写的
3.列名与列的别名在所有的情况下均是忽略大小写的
4.变量名也是严格区分大小写的
MYSQL在WINDOWS下都不区分大小写
7、字符串截取
mysql:
截取log_data从逗号开始之后的字符:
SELECT substring_index(log_data,',',-1)
FROM nbts.log where event_id='150002' and log_id ='a2a421734c7e47dd8a8b';
截取log_data从逗号开始之前的字符:
SELECT substring_index(log_data,',',1)
FROM nbts.log where event_id='150002' and log_id ='a2a421734c7e47dd8a8b';
oracle :
截取log_data从逗号开始之后的字符:
SELECT SUBSTR(log_data, INSTR(log_data, ',', 1, 1) +1) AS app_ver_id
FROM nbts.log where event_id='150002' and log_id ='a2a421734c7e47dd8a8b';
截取log_data从逗号开始之前的字符:
SELECT SUBSTR(log_data,0,INSTR(log_data, ',', 1, 1) - 1) AS app_ver_id
FROM nbts.log where event_id='150002' and log_id ='a2a421734c7e47dd8a8b';
8、字符串格式化
mysql:CONCAT
oracle:TO_CHAR
9、主键长度问题
在迁移到mysql后可能会出现主键长度太短,需要增加长度。
10、xml处理
updatexml();
ExtractValue();
11、数据类型
12、自定义类型