轉換工作區會將所有轉換問題匯總為群組和類別,協助您規劃如何修正轉換錯誤和警告。每個類別代表您可能需要執行的工作類型,才能修正問題 (檢查、重構、調整資料類型)。群組會進一步彙整資料,因為群組會區分較低層級的特定案例:


下表列出您在結構定義轉換期間可能遇到的所有轉換問題群組:
問題群組 ID | 說明 | ||
---|---|---|---|
輸入問題 (
|
|||
CW_OP0101 |
原始碼無效。 |
||
潛在根本原因
當資料庫遷移服務遇到不明語法,或 Oracle 原始碼無效 (例如缺少 |
|||
可能的緩解措施
修正來源 Oracle 資料庫中的無效物件。然後在資料庫移轉服務中重新整理來源結構定義快照,並重試結構定義轉換程序。或者,您也可以在遷移作業中排除該物件。 |
|||
CW_OP0102 |
缺少參照物件 |
||
潛在根本原因 資料庫移轉服務會使用來源樹狀結構中的物件中繼資料,提升相依物件的程式碼轉換品質。如果程式碼參照的物件未納入來源結構定義,您可能會遇到轉換問題,因為 Database Migration Service 無法判斷遺失的參照資料欄、屬性或物件的結構或資料類型。 這個群組可能發生的錯誤包括:使用者定義型別 (UDT) 的資料型別有誤,或是資料欄、參數或變數的預設 |
|||
可能的緩解措施
請確保所有參照物件都已新增至資料庫遷移服務來源樹狀結構,或根據您對來源資料模型的瞭解,手動調整 PostgreSQL 程式碼,解決缺少依附元件的問題。 |
|||
CW_OP0103 |
沒有主鍵的資料表 |
||
潛在根本原因 資料庫移轉服務要求所有資料表均具備主鍵。如果資料表沒有主鍵,資料庫移轉服務會在目標 PostgreSQL 資料表中新增名為 |
|||
可能的緩解措施
遷移作業完成後,您可以保留或移除 |
|||
尚未支援來源功能 (
|
|||
CW_OP0200 |
不支援的 Oracle 內建功能 |
||
潛在根本原因 您可能正在使用不支援的 Oracle 內建功能。 |
|||
可能的緩解措施
在 PostgreSQL 中尋找類似功能,並據此修改轉換後的程式碼。在某些情況下, Orafce 擴充功能可提供缺少的函式庫,這項擴充功能適用於 PostgreSQL 適用的 Cloud SQL 和 PostgreSQL 適用的 AlloyDB 遷移作業。 |
|||
CW_OP0201 |
目前不支援「 |
||
潛在根本原因 系統不支援轉換 Oracle |
|||
可能的緩解措施
如果您的原始碼不依賴 如果您的原始碼依賴 |
|||
CW_OP0203 |
尚未支援 Oracle SQL 函式 |
||
潛在根本原因 資料庫移轉服務不支援轉換部分 Oracle 內建函式。
某些函式可能在 PostgreSQL 中有對應項目 (例如 |
|||
可能的緩解措施
檢查是哪個 Oracle 函式引發錯誤。
|
|||
CW_OP0204 |
尚未完全支援 Oracle 內建套件 |
||
潛在根本原因 資料庫移轉服務支援某些 Oracle 內建套件,但許多套件不支援完整轉換,例如 |
|||
可能的緩解措施
如果您使用任何不支援的套件,可能需要:
|
|||
CW_OP0205 |
尚未支援轉換 Oracle 資料類型 |
||
潛在根本原因 目前不支援轉換或資料移動的 Oracle 資料類型如下: |
|||
可能的緩解措施
在大多數情況下,PostgreSQL 都有對應的資料類型。您可以 使用轉換對應檔案自訂轉換邏輯,並將不支援的 Oracle 資料型別轉換為所需的 PostgreSQL 資料型別。 如要進一步瞭解支援的資料類型,請參閱「 轉換工作區 - 總覽和支援的物件」。 |
|||
尚未支援來源特徵 (
|
|||
CW_OP0300 |
尚未支援來源特徵 |
||
潛在根本原因
這個群組會擷取與 Oracle 功能相關的所有一般問題,這些功能不支援轉換。這個群組中的問題不屬於任何其他更具體的群組。 |
|||
可能的緩解措施
|
|||
CW_OP0301 |
不支援結構定義物件類型 |
||
潛在根本原因 由於 PostgreSQL 沒有適當的對應項目,因此資料庫移轉服務不支援特定 Oracle 結構定義物件類型的程式碼轉換。例如,索引組織表 (IOT)、文字搜尋索引,或使用者定義型別 (UDT) 的主體。 |
|||
可能的緩解措施
資料庫移轉服務會將不支援的物件轉換為最接近的 PostgreSQL 對等項目。舉例來說,IOT 會變成具有主鍵限制的一般資料表,而文字搜尋索引會轉換為 B 樹狀結構索引。請注意,這些轉換可能會導致原始物件類型專屬功能遺失。 |
|||
CW_OP0302 |
尚未支援 PL/SQL 特徵 |
||
潛在根本原因
這個群組會擷取所有與 PL/SQL 功能相關的一般問題,這些功能不支援轉換。這個群組中的問題不屬於任何其他更具體的群組。 |
|||
可能的緩解措施
|
|||
CW_OP0303 |
尚未支援大量繫結 |
||
潛在根本原因
資料庫遷移服務程式碼轉換目前不支援 Oracle 大量繫結功能,例如 |
|||
可能的緩解措施
如要修正這個問題,請修改使用大量繫結功能的程式碼。 您可能需要考量 PostgreSQL 和 Oracle 架構的差異,以及是否需要在 PostgreSQL 中處理陣列,以符合您的用途。 在 PostgreSQL 中處理 Oracle 大量繫結作業時,有幾種策略可供選擇。這些工具的用途取決於您的具體情況,因此建議您使用 Gemini 支援的轉換輔助功能,滿足特定需求。以下提供其他建議範例,協助您開始使用:
|
|||
CW_OP0304 |
尚未支援集合 |
||
潛在根本原因 資料庫遷移服務的程式碼轉換功能部分支援 Oracle 集合。 |
|||
可能的緩解措施
您必須相應修改轉換後的 PostgreSQL 程式碼。解決集合問題時,請記住 PostgreSQL 陣列絕不會是稀疏陣列。如果稀疏地指派元素,PostgreSQL 陣列可能會傳回與 Oracle 陣列不同的結果和基數計數。
由於 PostgreSQL 不支援以字串建立索引的陣列,因此視資料性質而定,您可能會發現 |
|||
CW_OP0305 |
尚未支援管道函式 |
||
潛在根本原因 資料庫遷移服務不支援管道函式。 |
|||
可能的緩解措施
您可以將 Oracle 管道函式替換為 PostgreSQL 設定傳回函式。建議您根據自己的用途調整程式碼。以下列舉幾個例子,協助您快速上手:
Oracle 函式的 |
|||
CW_OP0306 |
尚未支援動態 SQL 選項 |
||
潛在根本原因
資料庫移轉服務部分支援轉換動態 SQL。Oracle |
|||
可能的緩解措施
您必須修改轉換後的程式碼,以符合自身需求。 強烈建議您使用 Gemini 支援的轉換輔助功能處理動態 SQL。 |
|||
CW_OP0307 |
尚未支援「 |
||
潛在根本原因 資料庫遷移服務支援大多數的 |
|||
可能的緩解措施
無法以簡單方式複製遞減順序的 檢查 |
|||
CW_OP0308 |
尚未支援 JSON |
||
潛在根本原因 資料庫移轉服務在資料移動和程式碼轉換方面有以下限制:
|
|||
可能的緩解措施
|
|||
CW_OP0309 |
鎖定和交易問題 |
||
潛在根本原因 資料庫遷移服務程式碼轉換功能不支援 |
|||
可能的緩解措施
|
|||
CW_OP0310 |
尚未支援 XML |
||
潛在根本原因
資料庫遷移服務不支援 Oracle |
|||
可能的緩解措施
雖然資料庫移轉服務不直接支援 如要遷移 XML 資料,請按照下列步驟操作:
如要進一步瞭解 PostgreSQL 如何與 |
|||
CW_OP0312 |
目前不支援「 |
||
潛在根本原因 Database Migration Service 不支援程式碼轉換的 |
|||
可能的緩解措施
您可以使用
您可以在 PostgreSQL 中以多種方式建立
|
|||
CW_OP0313 |
尚未支援 |
||
潛在根本原因 資料庫移轉服務不會轉換 |
|||
可能的緩解措施
在 PostgreSQL 中,將 Oracle |
|||
CW_OP0314 |
尚未支援 SQL 特徵 |
||
潛在根本原因
這個群組會擷取所有與轉換不支援的 SQL 功能相關的一般問題。這個群組中的問題不屬於任何其他更具體的群組。例如資料庫事件觸發程序、 |
|||
可能的緩解措施
|
|||
不支援的語法 (
|
|||
CW_OP0400 |
不支援的語法 |
||
潛在根本原因
這個群組會擷取所有與不支援的 Oracle SQL 或 PL/SQL 語法相關的一般問題。這個群組中的問題不屬於任何其他更具體的群組。 |
|||
可能的緩解措施
變更程式碼,改用功能等效的 PostgreSQL 語法。建議您探索 Gemini 支援的自動轉換功能,調整程式碼。詳情請參閱 使用 Gemini 輔助功能轉換 Oracle 程式碼和結構定義。 |
|||
CW_OP0401 |
不支援的 SQL 語法 | ||
潛在根本原因 您的原始碼使用資料庫移轉服務不支援的 SQL 語法或元素。舉例來說,系統不支援 Oracle |
|||
可能的緩解措施
|
|||
CW_OP0402 |
不支援的 PL/SQL 語法 | ||
潛在根本原因 您的原始碼使用 PL/SQL 語法或元素,但資料庫移轉服務不支援這些語法或元素。舉例來說,系統不支援以記錄為準的 |
|||
可能的緩解措施
變更程式碼,改用功能等效的 PostgreSQL 語法。建議您探索 Gemini 支援的自動轉換功能,調整程式碼。詳情請參閱 使用 Gemini 輔助功能轉換 Oracle 程式碼和結構定義。 |
|||
CW_OP0403 |
不支援的日期和時間戳記語法 |
||
潛在根本原因
如果日期或時間戳記語法、作業或運算式不受支援,資料庫遷移服務可能會發出錯誤或警告。這類問題的例子包括不相符的資料類型之間的比較,或是在時間戳記中使用 |
|||
可能的緩解措施
您可以使用 PostgreSQL 對應項目重新建立大部分的日期和時間戳記運算式。 建議您探索 Gemini 支援的自動轉換功能,加快修正這類問題。詳情請參閱 使用 Gemini 輔助功能轉換 Oracle 程式碼和結構定義。 |
|||
CW_OP0404 |
Oracle 例外狀況處理語法中不支援的元素 |
||
潛在根本原因 資料庫移轉服務的程式碼轉換功能不支援下列 Oracle
|
|||
可能的緩解措施
您必須在轉換後的程式碼中手動解決這些問題。 建議您探索 Gemini 支援的自動轉換功能,加快修正這類問題。詳情請參閱 使用 Gemini 輔助功能轉換 Oracle 程式碼和結構定義。 |
|||
資料類型和轉換 (
|
|||
CW_OP0500 |
資料類型和轉換問題 |
||
潛在根本原因 資料庫遷移服務可根據內容將轉換問題分組 (例如
在型別比較運算式中發生的轉換問題)。 |
|||
可能的緩解措施
在大多數情況下,資料庫遷移服務會在轉換後的 PostgreSQL 程式碼中發出 |
|||
CW_OP0501 |
日期格式遮罩問題 |
||
潛在根本原因
根據格式模型將日期或時間戳記運算式轉換為字串,或從字串轉換為日期或時間戳記運算式時,可能會遇到警告或問題。如果 Oracle 原始碼中的轉換排除明確的日期或時間戳記格式模型,資料庫移轉服務會使用預設模型 (目前為
如果為隱含轉換發出的格式模型與同一運算式中的明確格式模型衝突,有時可能會導致轉換後的程式碼發生問題。如果資料可能受到
Oracle |
|||
可能的緩解措施
在轉換工作區中檢查並驗證轉換後的 PostgreSQL 運算式。 |
|||
CW_OP0502 |
數字格式遮罩問題 |
||
潛在根本原因 資料庫移轉服務不支援所有
Oracle 格式模型。例如不支援 |
|||
可能的緩解措施
如果 Oracle 格式模型在 PostgreSQL 中沒有對應項目,您可能需要重構運算式或格式模型。建議您探索 Gemini 支援的自動轉換功能,加快修正這類問題。詳情請參閱 使用 Gemini 輔助功能轉換 Oracle 程式碼和結構定義。 |
|||
CW_OP0503 |
資料類型轉換問題 |
||
潛在根本原因 如果資料型別轉換不支援或不準確,可能會發生錯誤。資料庫遷移服務通常會發出 |
|||
可能的緩解措施
調整 PostgreSQL 程式碼,確保資料類型轉換正確。 如要進行這些修正,您必須熟悉參照的屬性、變數和資料欄。 |
|||
CW_OP0504 |
比較問題 |
||
潛在根本原因
轉換資料比較運算式時,資料庫遷移服務可能沒有足夠的中繼資料或資料類型資訊。舉例來說,如果使用者定義型別 (UDT) 與 |
|||
可能的緩解措施
查看轉換後的 PostgreSQL 運算式,並解決問題。 建議您探索 Gemini 支援的自動轉換功能,加快修正這類問題。詳情請參閱 使用 Gemini 輔助功能轉換 Oracle 程式碼和結構定義。 |
|||
潛在功能細微差異 (
|
|||
這類問題是指 Oracle 原始碼已正確轉換為最接近的 PostgreSQL 等效程式碼,但產生的程式碼可能在語意或功能上有些微差異,需要您審查。這是因為 Oracle 和 PostgreSQL 處理資料類型、格式或物件的方式不同。 乍看之下,這個類別似乎與「資料類型和轉換 ( |
|||
CW_OP0601 |
請查看日期格式遮罩 |
||
潛在根本原因
大多數
Oracle 日期和時間戳記格式模型在 PostgreSQL 中都有適當的對應項目,因此轉換後的程式碼在語意或功能上沒有差異。部分型號沒有完全相符的對應項目,且行為各不相同。
舉例來說,系統會將
Oracle |
|||
可能的緩解措施
使用格式模型轉換運算式,並檢查驗證轉換後的程式碼是否正常運作。 |
|||
CW_OP0602 |
請查看數字格式遮罩 |
||
潛在根本原因 大多數來源數值格式模型在 PostgreSQL 中都有對應項目,因此轉換後的程式碼在語意或功能上沒有差異。不過,部分格式模型可能沒有完全相符的項目,或行為略有不同。 |
|||
可能的緩解措施
使用格式模型轉換功能檢查及驗證運算式,確保轉換後的程式碼能正常運作。 |
|||
CW_OP0603 |
查看例外狀況代碼 |
||
潛在根本原因 當您使用
|
|||
可能的緩解措施
請評估這項行為是否符合您的需求。 只有在來源錯誤碼對應用程式、支援團隊或說明文件有意義時,才需要進行這項檢查。如果錯誤代碼值本身沒有意義,可以忽略這則警告。 |
|||
CW_OP0604 |
請查看例外狀況訊息 |
||
潛在根本原因
|
|||
可能的緩解措施
如果應用程式、支援基礎架構或說明文件依賴錯誤文字,請檢查轉換結果。否則可以忽略這項差異。 |
|||
CW_OP0605 |
查看 Oracle 內建函式的模擬情形 |
||
潛在根本原因 資料庫遷移服務的程式碼和結構定義轉換功能,旨在提供與 PostgreSQL 對應的 Oracle 函式行為,但結果可能不一定符合您的情境。因此,轉換工作區一律會針對可能需要您審查的函式轉換,提供建議警告。 |
|||
可能的緩解措施
建議您檢查轉換工作區發出警告的物件,這些物件會顯示在「 |
|||
CW_OP0606 |
查看外鍵欄資料類型 |
||
潛在根本原因 資料庫遷移服務在父項和子項物件之間發現不相符的資料類型規格 (例如,父項資料欄為 |
|||
可能的緩解措施
在大多數情況下,資料型別的輕微不符不會導致資料庫功能發生問題。不過,建議您檢查轉換後的資料模型是否不一致。 |
|||
建議檢討功能性 (
|
|||
CW_OP0701 |
建議檢討功能性 | ||
潛在根本原因
這個群組會擷取所有與 Oracle 和 PostgreSQL 程式碼中潛在功能差異相關的一般問題。這個群組中的問題不屬於任何其他更具體的群組。 |
|||
可能的緩解措施
|
|||
CW_OP0702 |
查看 Oracle 內建函式的模擬情形 |
||
潛在根本原因 許多 Oracle 內建函式在 PostgreSQL 中沒有直接對應的函式。 為協助解決遷移作業的這項問題,資料庫遷移服務會使用不同的 SQL 運算式轉換程式碼,在 PostgreSQL 中產生同等的功能行為。 在某些情況下,轉換後的運算式可能很複雜。
資料庫移轉服務會在 |
|||
可能的緩解措施
檢查轉換後的程式碼,確保轉換後的函式在 PostgreSQL 環境中可正常運作。 |
|||
需要重構 (
|
|||
CW_OP0801 |
必須重構自主交易 |
||
潛在根本原因 PostgreSQL 不支援 自主交易。 |
|||
可能的緩解措施
您可以使用
|
|||
CW_OP0802 |
必須重構資料庫連結 |
||
潛在根本原因 資料庫遷移服務不支援 Oracle 資料庫連結。使用連結的物件需要重構。 |
|||
可能的緩解措施
視資料庫連結的目標而定,您可以使用資料庫擴充功能 (例如
|
|||
CW_OP0803 |
必須重構進階佇列 |
||
潛在根本原因 Oracle Advanced Queuing 套件 ( |
|||
可能的緩解措施
請考慮下列選項:
|
|||
CW_OP0804 |
必須重構資料庫電子郵件 |
||
潛在根本原因 PostgreSQL 適用的 AlloyDB 不支援直接從資料庫傳送電子郵件。啟用這項功能的擴充功能也不受支援。
因此,資料庫遷移服務不會轉換
|
|||
可能的緩解措施
重構資料庫電子郵件程式碼,並將傳送電子郵件的責任轉移至應用程式層。您仍可使用資料庫擷取需要傳送電子郵件的條件。 舉例來說,您可以將電子郵件詳細資料寫入專用資料表。這個資料表也可以做為電子郵件佇列,您可以使用 Cloud Run functions 函式輪詢,並處理實際的 SMTP 處理作業。 |
|||
CW_OP0805 |
必須重構工作和排程 |
||
潛在根本原因
資料庫遷移服務不會轉換
|
|||
可能的緩解措施
對於沒有依附元件的簡單工作,您可以使用
如果排程較為複雜, |
|||
CW_OP0806 |
必須重構檔案 I/O |
||
潛在根本原因 資料庫遷移服務不支援 Oracle
Orafce 擴充功能包含 |
|||
可能的緩解措施
|
|||
CW_OP0807 |
同義詞 |
||
潛在根本原因 PostgreSQL 不支援同義詞。如果是程式碼物件,資料庫移轉服務會自動將同義字參照替換為來源結構定義和物件名稱。如果您在程式碼物件以外使用同義字 (例如資料庫應用程式使用者的唯讀結構定義),則必須手動轉換。 |
|||
可能的緩解措施
如要在程式碼物件以外使用同義字,可以採用 PostgreSQL
|
|||
CW_OP0808 |
全域臨時資料表 |
||
潛在根本原因 這個問題群組的警告表示,資料庫移轉服務在 Oracle 原始碼中偵測到全域臨時表。如要遷移全域暫時資料表,您必須在目的地資料庫上安裝並建立 pgtt PostgreSQL 擴充功能。 |
|||
可能的緩解措施
建議您確認目的地資料庫已安裝並建立 pgtt PostgreSQL 擴充功能。 |
|||
Gemini 審查建議 (
|
|||
CW_AI9900 |
查看 Gemini 建議 |
||
可能根本原因:
這個問題群組會擷取與 Gemini 強化程式碼轉換相關的所有一般錯誤和警告。 |
|||
可能的解決方法:這裡發現的問題不一定代表實際問題,但我們強烈建議您檢查所有 Gemini 輔助轉換,確保符合預期。 |
|||
CW_AI9901 |
檢查 AI 生成的程式碼 |
||
可能根本原因:這段 DDL 程式碼是透過 Gemini 強化功能轉換而來,可能需要您檢查準確度。 | |||
可能的解決方法:建議您仔細檢查透過 AI 擴增功能轉換的程式碼,確保最終結果符合來源結構定義的功能。 |
|||
CW_AI9902 |
參考資料 |
||
潛在根本原因:Gemini 強化建議可能包含引自多個來源的內容。某些引用內容可能受到授權限制。建議您檢查轉換後的程式碼,確認是否含有引文。 | |||
一般轉換問題 (
|
|||
CW_OP0000 |
中繼資料轉換問題 |
||
可能根本原因:
這個群組會擷取所有不屬於其他特定問題群組的轉換問題。 |
|||
可能的緩解措施
建議您根據對來源資料模型的瞭解程度檢查轉換後的程式碼,並視需要調整程式碼。 |
|||
CW_OP0001 |
中繼資料轉換問題 |
||
可能根本原因:
這個群組會擷取所有不屬於其他特定問題群組的中繼資料追蹤問題。 |
|||
可能的緩解措施:
這個群組中的問題通常與編譯錯誤或警告有關,可能導致轉換後的 PostgreSQL 資料類型發生問題。建議您根據對來源資料模型的瞭解程度,檢查轉換後的程式碼,並調整錯誤的參照。 |
|||
CW_OP0002 |
與支援團隊聯絡 |
||
潛在根本原因 在特殊極端情況下,您可能會遇到內部錯誤,但 Oracle 來源物件有效。如有,請與支援團隊聯絡, 尋求進一步協助。 |
|||
CW_OP0003 |
一般轉換問題 |
||
潛在根本原因
這個群組包含所有不屬於其他特定問題類別或群組的問題。 |
|||
可能的緩解措施
建議您根據對來源資料模型和程式碼的瞭解,檢查轉換後的程式碼,並視需要進行調整。 |