目录
前言
Table
Trigger
Sequence
Index
Store Procedure
转换工具
参考
前言
最近在做Oracle数据库迁移到PG的项目,第一步是创建DB schema。Oracle和PG的DDL必然存在不同之处,本文是个人心得。
Table
两个数据库存在数据类型差异,以下是我遇的转换方法。
Oracle和PG数据类型对比
Oracle | PG | 备注 |
---|
VARCHAR2 | VARCHAR | | NUMBER | NUMBERIC | | TIMESTAMP | TIMESTAMP | PG的TIMESTAMP精度最大是6,即TIMESTAMP(6) |
举例,以下是Oracle表格的DDL
-- Oracle DDL
create table MRGN
(
country_code VARCHAR2(255),
is_alert NUMBER(1) not null,
txn_id NUMBER(22,6) not null,
audit_time TIMESTAMP(9) not null
)
转换为PG的DDL:?
-- PG DDL
create table MRGN
(
country_code VARCHAR(255),
is_alert NUMBERIC(1) not null,
txn_id NUMBER(22,6) not null,
audit_time TIMESTAMP(6) not null
)
Trigger
TBC
Sequence
TBC
Index
TBC
Store Procedure
TBC
转换工具
使用sqlines可以帮助转换DDL,但不是百分百准确,仅供参考。
它有是开源的,也有在线版本。
参考
Data and Analytics Platform Migration - SQLines Tools
|