乐趣区

关于数据库:数据库迁移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 语句,还有默认值解决,批量新增语句等问题

退出移动版