轉換工作區會將所有轉換問題彙整成群組和類別,協助您規劃如何修正轉換錯誤和警告。每個類別代表您可能需要執行的工作類型,以修正問題 (審查、重構、調整資料類型)。群組可進一步匯總,因為群組會在較低層級區分特定案例:
下表列出結構定義轉換期間可能遇到的所有轉換問題群組:
| 問題群組 ID | 說明 | ||
|---|---|---|---|
輸入問題 (
|
|||
CW_OP0101 |
原始碼無效。 |
||
|
潛在的根本原因
如果資料庫遷移服務遇到不明語法,或 Oracle 原始碼無效 (例如預存程序缺少 |
|||
|
可能的緩解措施
修正來源 Oracle 資料庫中的無效物件。接著,在資料庫遷移服務中重新整理來源結構定義快照,並重新嘗試結構定義轉換程序。或者,您也可以在遷移作業中排除該物件。 |
|||
CW_OP0102 |
缺少參照物件 |
||
|
潛在的根本原因 資料庫遷移服務會使用來源樹狀結構中的物件中繼資料,提高依附物件的程式碼轉換品質。如果程式碼參照的物件未包含在來源結構定義中,可能會發生轉換問題,因為資料庫遷移服務無法判斷缺少的參照資料欄、屬性或物件的結構或資料類型。 這個群組中可能發生的錯誤包括使用者定義類型 (UDT) 的資料類型不正確,或資料欄、參數或變數的預設 |
|||
| 可能的緩解措施
請務必將所有參照物件新增至資料庫遷移服務來源樹狀結構,或根據您對來源資料模型的瞭解,手動調整 PostgreSQL 程式碼,以解決缺少的依附元件問題。 |
|||
CW_OP0103 |
沒有主鍵的資料表 |
||
|
潛在的根本原因 資料庫遷移服務要求所有資料表都必須有主鍵。如果資料表沒有主鍵,資料庫遷移服務會在目標 PostgreSQL 資料表中,新增名為 |
|||
|
可能的緩解措施
遷移後,您可以保留或移除 |
|||
不支援來源功能 (
|
|||
CW_OP0200 |
不支援的 Oracle 內建功能 |
||
|
潛在的根本原因 您可能使用了不支援的內建 Oracle 功能。 |
|||
|
可能的緩解措施
請在 PostgreSQL 中尋找類似功能,並據此修改轉換後的程式碼。在某些情況下,缺少的函式可能由 Orafce 擴充功能提供,適用於 PostgreSQL 適用的 Cloud SQL 和 AlloyDB for PostgreSQL 遷移作業。 |
|||
CW_OP0201 |
不支援 |
||
|
潛在的根本原因 不支援轉換 Oracle |
|||
|
可能的緩解措施
如果原始碼不依賴 如果原始碼依賴 |
|||
CW_OP0203 |
不支援 Oracle SQL 函式 |
||
|
潛在的根本原因 資料庫遷移服務不支援轉換部分 Oracle 內建函式。
某些函式在 PostgreSQL 中可能有對應項目 (例如 |
|||
|
可能的緩解措施
檢查哪個 Oracle 函式引發錯誤。
|
|||
CW_OP0204 |
不完全支援 Oracle 內建套件 |
||
|
潛在的根本原因 資料庫遷移服務支援特定 Oracle 內建套件,但許多套件不支援完整轉換,例如 |
|||
|
可能的緩解措施
如果您使用任何不支援的套件,可能需要:
|
|||
CW_OP0205 |
不支援轉換 Oracle 資料類型 |
||
|
潛在的根本原因 目前不支援轉換或移動部分 Oracle 資料類型。 |
|||
|
可能的緩解措施
在多數情況下,PostgreSQL 都有對應的資料類型。您可以 使用轉換對應檔案自訂轉換邏輯,並將不支援的 Oracle 資料類型轉換為必要的 PostgreSQL 資料類型。 如要進一步瞭解資料類型支援,請參閱「 轉換工作區 - 總覽和支援的物件」。 |
|||
CW_OP0206 |
命名衝突 |
||
|
潛在的根本原因 這個群組會擷取多個資料庫物件 (例如資料表、materialized view) 轉換為在目的地資料庫中使用相同名稱的問題。舉例來說,如果來源物件的名稱只有大小寫不同,就可能發生這個問題。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 |
不支援管道函式 |
||
|
潛在的根本原因 資料庫遷移服務不支援管道函式。 |
|||
|
可能的緩解措施
您可以使用 PostgreSQL 集合傳回函式,取代 Oracle 管道函式。建議您根據用途調整程式碼。以下列舉幾個例子,協助您快速上手:
來源管道函式的集合類型 (用於 Oracle 函式的 |
|||
CW_OP0306 |
不支援動態 SQL |
||
|
潛在的根本原因
資料庫遷移服務部分支援轉換動態 SQL。Oracle |
|||
|
可能的緩解措施
您必須修改轉換後的程式碼,以符合您的需求。 強烈建議您使用 Gemini 輔助轉換功能處理動態 SQL。 |
|||
CW_OP0307 |
不支援「 |
||
|
潛在的根本原因 資料庫遷移服務支援大多數 |
|||
|
可能的緩解措施
您無法以簡單的方式複製 請查看 |
|||
CW_OP0308 |
不支援 JSON |
||
|
潛在的根本原因 資料庫遷移服務在支援
|
|||
可能的緩解措施
|
|||
CW_OP0309 |
鎖定和交易問題 |
||
|
潛在的根本原因 資料庫遷移服務程式碼轉換不支援 |
|||
可能的緩解措施
|
|||
CW_OP0310 |
不支援 XML |
||
|
潛在的根本原因
資料庫遷移服務不支援 Oracle |
|||
|
可能的緩解措施
雖然資料庫遷移服務不直接支援 如要遷移 XML 資料,請按照下列步驟操作:
如要進一步瞭解 PostgreSQL 如何與 |
|||
CW_OP0312 |
不支援 |
||
|
潛在的根本原因 資料庫遷移服務不支援 |
|||
|
可能的緩解措施
您可以使用
您可以在 PostgreSQL 中,透過多種方式建立
|
|||
CW_OP0313 |
不支援 |
||
|
潛在的根本原因 資料庫遷移服務不支援轉換 |
|||
|
可能的緩解措施
將 Oracle |
|||
CW_OP0314 |
不支援 SQL 功能 |
||
|
潛在的根本原因
這個群組會擷取所有與不支援轉換的 SQL 功能相關的一般問題。這個群組中的問題不屬於其他更具體的問題群組。例如資料庫事件觸發條件、 |
|||
可能的緩解措施
|
|||
不支援的語法 (
|
|||
CW_OP0400 |
不支援的語法 |
||
|
潛在的根本原因
這個群組會擷取與不支援的 Oracle SQL 或 PL/SQL 語法相關的所有一般問題。這個群組中的問題不屬於任何其他更具體的問題群組。 |
|||
|
可能的緩解措施
請將程式碼變更為使用 PostgreSQL 功能等效的 PostgreSQL 語法。建議您探索 Gemini 輔助的自動轉換功能,調整程式碼。詳情請參閱「 使用 Gemini 輔助功能轉換 Oracle 程式碼和結構定義」。 |
|||
CW_OP0401 |
不支援的 SQL 語法 | ||
|
潛在的根本原因 您的原始碼使用資料庫遷移服務不支援的 SQL 語法或元素。例如,不支援 Oracle |
|||
可能的緩解措施
|
|||
CW_OP0402 |
不支援的 PL/SQL 語法 | ||
|
潛在的根本原因 您的原始碼使用資料庫遷移服務不支援的 PL/SQL 語法或元素。例如,不支援以記錄為基礎的 |
|||
|
可能的緩解措施
請變更程式碼,改用功能等同於 PostgreSQL 的 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 適用的 Cloud SQL 不支援直接從資料庫傳送電子郵件。也不支援啟用這項功能的擴充功能。
因此,資料庫遷移服務不會轉換
|
|||
|
可能的緩解措施
重構資料庫電子郵件程式碼,並將傳送電子郵件的責任移至應用程式層。您仍可使用資料庫擷取需要傳送電子郵件的條件。 舉例來說,您可以將電子郵件詳細資料寫入專用資料表。這個資料表也可以做為電子郵件佇列,您可以使用 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 |
一般轉換問題 |
||
| 潛在的根本原因
這個群組包含所有不屬於其他更具體問題類別或群組的問題。 |
|||
| 可能的緩解措施
建議您根據對來源資料模型和程式碼的瞭解,檢查轉換後的程式碼,並視需要調整。 |
|||