Oracle和PG的数据类型不尽相同,在数据迁移时需要考虑类型转换,以下是我在项目中遇到过的类型转换。
| From Oracle | To PG |
|---|---|
| VARCHAR2 | varchar |
| NUMBER | numeric |
| CLOB | text |
| BLOB | bytea |
下面是数据迁移的核心代码:
public class DataCopyService {
private static final Logger LOGGER = LoggerFactory.getLogger(DataCopyService.class);
private final DAO oracleDao;
private final DAO pgDao;
public DataCopyService(DAO oracleDao, DAO pgDao) {
this.oracleDao = oracleDao;
this.pgDao = pgDao;
}
public boolean verify(String table) throws SQLException {
String sql = "select count(1) as row_count from " + table;
int rowCountOracle = oracleDao.queryForObject(sql,
ps -> {},
rs -> rs.getInt("row_count"));
int rowCountPg = pgDao.queryForObject(sql,
ps -> {},
rs -> rs.getInt("row_count"));
LOGGER.info("table={}, rowCountInOracle={}, rowCountInPg={}, isRowCountSame={}",
table, rowCountOracle, rowCountPg, rowCountOracle == rowCountPg);
return rowCountOracle == rowCountPg;
}
public bo

1万+

被折叠的 条评论
为什么被折叠?



