加拿大蒙特婁 - 2023 年 7 月 5 日
Ora2Pg 24.0 版已正式發布,這是一個免費且可靠的工具,用於將 Oracle 數據庫遷移到 PostgreSQL,並且可以公開下載。
此主要版本增加了對將 SQL Server 數據庫遷移到 PostgreSQL 的官方支持。 它還修復了過去幾個月報告的幾個問題,並添加了一些新功能和改進。
DBMS_LOCK.SLEEP
。ADD CONSTRAINT
的存在添加成本。它需要約束名稱穩定性。COPY
和 TABLE
導出類型使用 NULLIF
結構。SEQUENCE_VALUES
導出類型,以導出 DDL 以設定序列的最後一個值,從目前 Oracle 數據庫的最後一個值開始,例如以下語句:ALTER SEQUENCE departments_seq START WITH 290;
: varname
替換為 PG :'varname'
。PARTITION BY KEY()
的支持,並將其翻譯為使用表的 PK/UK 定義或 KEY()
子句中指定的列的 HASH 分割表。EXPORT_INVALID
配置指令適用於 TRIGGER 導出。 到目前為止,禁用的觸發器沒有被導出,將 EXPORT_INVALID
設定為 1 將強制導出禁用的觸發器。CREATE TABLE t1 ( dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
Ora2Pg 會將此語法轉換為表上的觸發器,以強制在更新事件時使用該列的值。row_number() over ()
子句替換目標列表中的 ROWNUM。新的配置指令
CLOB_AS_BLOB
配置指令,用於在導出數據時將 CLOB 視為 BLOB。 啟用後,Ora2Pg 將對 CLOB 應用與 BLOB 相同的行為,並使用 BLOB_LIMIT
設定。 如果您有大型 CLOB 數據,這會很有用。 預設啟用。ST_GEOMETRYTYPE_FUNCTION
,以便能夠設定用於從 ST_Geometry 列中提取幾何類型的函數。 預設值:ST_GeometryType,例如,對於 ArcSDE,應將其設定為 sde.ST_GeometryType。ST_SRID_FUNCTION
:用於從 ST_Geometry 元信息中提取 srid 的 Oracle 函數。 預設值:ST_SRID,例如,對於 ArcSDE,應將其設定為 sde.st_srid。ST_DIMENSION_FUNCTION
:用於從 ST_Geometry 元信息中提取維度的 Oracle 函數。 預設值:ST_DIMENSION,例如,對於 ArcSDE,應將其設定為 sde.st_dimention。ST_ASBINARY_FUNCTION
:用於將 ST_Geometry 值轉換為 WKB 格式的 Oracle 函數。 預設值:ST_ASBINARY,例如,對於 ArcSDE,應將其設定為 sde.st_asbinary。ST_ASTEXT_FUNCTION
:用於將 ST_Geometry 值轉換為 WKT 格式的 Oracle 函數。 預設值:ST_ASTEXT,例如,對於 ArcSDE,應將其設定為 sde.st_astext。INSERT_ON_CONFLICT
配置指令。 啟用後,此指令會指示 Ora2Pg 將 ON CONFLICT DO NOTHING
子句添加到為此類數據導出生成的所有 INSERT 語句中。向後兼容性
CASE_INSENSITIVE_SEARCH
的行為,以允許使用排序規則而不是 citext 擴展。 若要停用此功能,可以使用值 none。 如果遷移不是 MSSQL,則此功能會被停用。PREFIX_PARTITION
配置指令,現在由 RENAME_PARTITION
指令替換。 之前的行為是從表名、分割區名稱和子分割區名稱(如果有的話)構造分割區名稱。 問題是我們經常達到物件名稱的最大長度,這會導致重複的分割區名稱。 現在,當啟用 RENAME_PARTITION
時,分割區表將按照以下規則重新命名:<tablename>_part<pos>
,其中 "pos" 是分割區編號。 對於子分割區,這是:<tablename>_part<pos>_subpart<pos>
如果這是分割區/子分割區預設值:<tablename>_part_default
<tablename>_part<pos>_subpart_default
此變更將中斷向後兼容性,如果仍然設定 PREFIX_PARTITION
,它只會啟用 RENAME_PARTITION
。START
值高於 MAXVALUE
時,將 START
值設定為 MINVALUE
。有關變更的完整列表,請參閱 https://github.com/darold/ora2pg/blob/master/changelog
我要感謝所有提交修補程式的用戶以及報告錯誤和功能請求的用戶,他們都在變更日誌文件中被提及。
Ora2Pg 是一個開放項目。 歡迎對構建更好的工具做出任何貢獻。 您只需使用 GitHub 工具或直接發送到 ora2pg@darold.net 即可發送您的想法、功能請求或修補程式。
鏈結
關於 Ora2Pg :
Ora2Pg 是一個簡單且可靠的工具,用於從 Oracle 遷移到 PostgreSQL。 它自 2001 年以來一直在開發,並且可以將大多數 Oracle 物件導出為與 PostgreSQL 兼容的程式碼。
Ora2Pg 可以在任何平台上運行,並且可以根據 GPL v3 許可證使用。
文件、下載和支援位於 http://www.ora2pg.com/