oracle 转mysql数据出现的问题
1.
在通过Navicat将oracle数据库中的表转为mysql时出现以下错误:
解决方法:
先将oracle中表对应的字段改为local time zone类型。如
– Add/modify columns
alter table 表名 modify create_time timestamp with local time zone;
转完之后还原之前的字段类型
alter table 表名 modify create_time DATE ;
2.Oracle的“ROWNUM”关键字在MySQL中使用“LIMIT”关键字
oracle 中 SELECT *FROM 表名 t WHERE t.id= '104967679' AND rownum = 1 ;
mysql中 SELECT *FROM 表名 t WHERE t.id= '104967679' Limit 1;
3.Oracle的“NVL”函数在MySQL中使用“IFNULL”函数
Oracle:SELECT NVL(salary, 0) FROM employees;
MySQL:SELECT IFNULL(salary, 0) FROM employees;
4.Oracle的“TO_CHAR”函数在MySQL中使用“DATE_FORMAT”函数
Oracle:SELECT TO_CHAR(hire_date, 'YYYY-MM-DD') FROM employees;
MySQL:SELECT DATE_FORMAT(hire_date, '%Y-%m-%d') FROM employees;
5.Oracle的“TO_NUMBER”函数在MySQL中使用“CAST”函数
Oracle:SELECT TO_NUMBER('123') FROM dual;
MySQL:SELECT CAST('123' AS UNSIGNED);
6.Oracle的“TO_DATE”函数在MySQL中使用“STR_TO_DATE”函数,例如:
Oracle:SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') FROM dual;
MySQL:SELECT STR_TO_DATE('2022-01-01', '%Y-%m-%d');