数据库迁移:mysql到oracle

公司项目基于mysql基本已开发完成,突然要换数据库,本来以为就是修改一下配置文件,结果各种报错各种问题,,,主要有以下几个问题:

1.关键字问题

comment、start等在oracle中是关键字,不能用来命名表名和字段名,将mysql数据结构转到oracle时,会自动在末尾加下划线,如start_,这时还要修改javaBean、mapper的xml文件等。

2.text类型的转换

mysql中text类型会自动转换为oracle的clob类型,clob是大数据字段类型,查询效率慢,所以当存储的数据长度<4000时,改类型为varchar2(4000)

3.空字符串问题

最大的问题是mysql中是有空字符串的与null不同,而oracle中空字符串(“”)就是null,数据转为oracle时会变为空格(“ “),导致系统查询不出数据,这时如果将数据设置为null,
查询条件又会过滤属性为null的查询,还是不满足条件;也想过就使用空格查询,但是mybatis拼接查询条件时,会将空格trim,查询的是空字符串,如:select * from user where form_code = ‘’;
这时数据库中的数据无论是null还是空格都查询不出;思量过后还是使用”default”替代了空字符串的数据,这时就要全局修改该字段的逻辑了。。。

4.大小写问题

将mysql数据库导出数据结构时,建表语句的表名和字段名会有双引号,这时查询语句的表名和字段名可能要与双引号中的表名和字段名大小写一致,创建表时最好去除双引号

5.其他问题

使用JDBC写了limit语句改为rownum语句,还有默认值处理,批量新增语句等问题

你可能感兴趣的:(mysql数据库oracle)