Ora2Pg是一款开源且稳定可靠的迁移工具,主要用于Oracle到PostgreSQL迁移。近期Ora2Pg 24.0正式发版并开放下载。
Ora2Pg 24.0版本正式提供SQL Server到PostgreSQL数据库迁移的官方支持。该版本同时还修复了过去八个月报告的bug,增加了部分新特性及功能增强。
l 新增SQL Server迁移功能。支持大部分SQL Server数据库对象及数据迁移。TSQL缺少语句分隔符使得其到plpgsql的转换变得比较复杂,但是Ora2Pg依然尽最大努力做了力所能及的工作。同时还提供了SQL Server迁移评估。ora2pg.conf增加了部分专用配置参数。
l SHOW_*报告支持使用ALLOW/EXCLUDE语法,当ALLOW/EXLUDE包含全局过滤器时会报错。
l 新增pg_sleep替换DBMS_LOCK.SLEEP功能。
l 评估成本分拆到每个函数/存储过程/包函数。
l 新增cmin,cmax,ctid等关键字。
l 为PLSQL代码中的ADD
CONSTRAINT增加评估成本。该功能需要约束名称稳定。
l 支持COPY和TABLE两种导出类型使用NULLIF结构。
l 新增SEQUENCE_VALUES导出类型,支持导出DDL时设置当前Oracle数据库最新的序列值,例如:ALTER SEQUENCE departments_sqe START WITH 290.
l 新增Oracle变量替换功能,使用PG ‘varname’替换Oracle varname。
l 支持MySQL PARTITION BY KEY()语法转换,将该语法转换为使用主键或唯一索引定义的HASH分区表,或者使用KEY()中字段列表做分区键。
l EXPORT_INVALID 参数支持触发器导出。在此之前,Ora2Pg无法导出失效的触发器,新版本中该参数设置为1会强制导出失效的触发器。
l 支持MySQL更新默认值功能迁移,例如: CREATE TABLE t1 ( dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP ),Ora2Pg会使用触发器转换该语法。
l 新增ST_GEOMETRY 数据类型到PostGis geometry类型转换。
l 使用row_number()over()语句替换目标列表中的ROWNUM伪列。




