舊版轉換工作區是較舊且功能較受限的轉換工作區類型。舊版轉換工作區不支援 Gemini 強化轉換功能或互動式 SQL 編輯器。您只能使用這些檔案,透過 Ora2Pg 遷移工具轉換來源結構定義。
我們不建議您使用舊版轉換工作區進行遷移,因為這類工作區對轉換工作流程設有多項其他限制:
| 互動式轉換工作區 | 舊版轉換工作區 | 
|---|---|
| 結構定義和程式碼物件轉換作業會在資料庫移轉服務中進行。 | 您可以使用 Ora2Pg 遷移工具,在資料庫遷移服務外部執行結構定義和程式碼物件轉換。 | 
| 您可以在資料庫移轉服務中,直接將轉換後的來源套用至目的地資料庫。 | 您有責任將轉換後的結構定義套用至 PostgreSQL 適用的 Cloud SQL 目的地執行個體中的目的地資料庫。 | 
| 您可以在資料庫移轉服務中直接測試結構定義草稿和程式碼,確保這些項目可以順利套用至目的地執行個體。 | 您無法測試草稿結構定義和程式碼,以免影響目的地執行個體。 | 
| 如果資料表沒有主鍵和不重複的限制,系統會自動新增缺少的 rowid欄。 | 套用結構定義後,您必須將缺少的主鍵新增至目的地資料表。 | 
使用舊版轉換工作區
如果您的情況需要使用舊版轉換工作區,請採取下列動作修改遷移程序:
- 撰寫 Ora2Pg 設定檔。 - 如要瞭解如何使用 Ora2Pg 轉換工具,請參閱 Ora2Pg 說明文件。展開下列章節,查看資料庫遷移服務支援的完整指令清單。 - 資料庫移轉服務支援的 Ora2Pg 設定- 資料庫遷移服務支援 Ora2Pg 檔案的下列設定項目: - BOOLEAN_VALUES
- DATA_TYPE
- DEFAULT_NUMERIC
- ENABLE_MICROSECOND
- EXPORT_SCHEMA
- MODIFY_STRUCT
- MODIFY_TYPE
- PG_INTEGER_TYPE
- PG_NUMERIC_TYPE
- PG_SCHEMA
- PRESERVE_CASE
- REPLACE_AS_BOOLEAN
- REPLACE_COLS
- REPLACE_TABLES
- REPLACE_ZERO_DATE
- SCHEMA
 - 資料庫移轉服務會使用連線設定檔定義連線詳細資料,因此您不需要在 Or2Pg 設定檔中定義下列資訊: - ORACLE_DSN
- ORACLE_HOME
- ORACLE_PWD
- ORACLE_USER
- PG_DSN
- PG_PWD
- PG_USER
 - 此外,資料庫移轉服務不會使用 - WHERE設定指令來限制要遷移的記錄。
- 建立舊版轉換工作區,然後上傳 Ora2Pg 檔案來轉換結構定義。
- 手動將轉換後的結構定義套用至目的地資料庫。 - 建立 Ora2Pg 設定並建立工作區後,您必須自行將產生的程式碼直接套用至目的地資料庫。 
- 遷移沒有主鍵的資料表。 - 資料庫移轉服務只會遷移含有主鍵的資料表。如果來源資料庫包含沒有主鍵的資料表,您需要在套用轉換後的結構定義後,手動在目標資料庫的轉換資料表中建立主鍵或不重複的限制。展開下節即可查看詳情。 - 在目的地資料庫中新增主鍵限制- 如要遷移沒有主鍵的 Oracle 資料表,請按照下列步驟操作: - 使用 SQL 用戶端連線至目的地 Cloud SQL 執行個體。你可以使用下列方法:
          - 
            psqlclient。您可以使用這個方法連線至執行個體私人 IP,但可能需要建立 Compute Engine 虛擬機器。
- 
              gcloud sql connect指令。這個指令僅適用於已啟用公開 IP 位址的 Cloud SQL 執行個體。
 
- 
            
- 為資料表建立缺少的主鍵限制。如要進一步瞭解主鍵,請參閱 PostgreSQL 說明文件中的「
          主鍵」。您也可以展開下列章節,查看 SQL 指令範例: 使用現有資料欄建立主鍵您的資料表可能已根據資料欄或資料欄組合,建立邏輯主鍵。舉例來說,可能會有設定了唯一限制或索引的資料欄。使用這些資料欄,為來源資料庫中的資料表產生新的主鍵。例如: ALTER TABLE TABLE_NAME ADD PRIMARY KEY (COLUMN_NAME); 使用所有資料欄建立主鍵如果沒有可做為主鍵的預先存在限制,請使用資料表的所有欄建立主鍵。請確認主鍵長度未超過 PostgreSQL 執行個體允許的上限。例如: ALTER TABLE TABLE_NAME ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...); 建立這類複合主鍵時,您需要明確列出要使用的所有資料欄名稱。您無法使用陳述式擷取所有資料欄名稱。 使用ROWID虛擬資料欄建立唯一限制Oracle 資料庫會使用 ROWID虛擬資料欄,儲存資料表中每列的位置。如要遷移沒有主鍵的 Oracle 資料表,可以在目的地 PostgreSQL 資料庫中新增ROWID資料欄。資料庫移轉服務會從來源 OracleROWID虛擬資料欄填入對應的數值。如要新增資料欄並設為主鍵,請執行下列指令: ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL; CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid; ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('TABLE_NAME_rowid_seq'); ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid); 
 
- 使用 SQL 用戶端連線至目的地 Cloud SQL 執行個體。你可以使用下列方法:
          
後續步驟
使用舊版工作區執行轉換工作流程後,即可繼續進行標準遷移程序。請參閱「 建立遷移工作」。