前言
近期需要将PG数据库的数据迁移至Oracle数据库,并对数据进行一个验证,本文对整个过程中遇到的坑做一个总结。
聊聊过程中的坑
1、maven引入Oracle的驱动
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>11.2.0</version>
</dependency>
但是因为Oracle的版权问题,如果单纯在pom文件中加入这个依赖,整个工程会报错。
【解决方案】: 1)、下载对应的ojdbc.jar,可以直接去Oracle官网下载,也可以从maven官网下载,或者从已经安装的Oracle产品目录里复制,一般在Oracle\app\oracle\product\11.2.0\server\jdbc\lib中能找到对应的jar包。
2)、然后执行如下命令安装到本地maven仓库就行,然后保持pom中的依赖就行。
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=11.2.0 -Dpackaging=jar -Dfile=ojdbc6.jar
2、boolean类型
pg数据库中有boolean类型,但是Oracle中没有boolean类型,大多数0和1表示。
3、空串
空字符串:两个单引号,中间无空格等任何内容。
在postgresql中,空字符串与null是不同的;而oracle中,空字符串与null等同。所以在查询过程中,需要做判空处理。
4、JDBC连接PB数据库
Class.forName("org.postgresql.Driver");
DriverManager.getConnection("jdbc:postgresql://localhost:5432/dbname", "username", "password")
5、JDBC连接Oracle
Class.forName("oracle.jdbc.OracleDriver");
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:dbname", "username", "password");
6、迁移验证点
数据库metadata表,字段、数据、数据库的参数配置、热点数据、是否分库分表、默认值的设置、存储过程、空间的增长、发布过程中监控及回滚方案等都需要注意。