

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 指定遷移專案的資料架構轉換設定
<a name="schema-conversion-settings"></a>

建立遷移專案後，您可以在 DMS 結構描述轉換中指定轉換設定。設定結構定義轉換設定可改善轉換後程式碼的效能。

**編輯轉換設定的步驟**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/) 開啟 AWS DMS 主控台。

1. 選擇**遷移專案**。**遷移專案**頁面隨即開啟。

1. 選擇您的遷移專案。請選擇**結構描述轉換**，然後選擇**啟動架構轉換**

1. 選擇**設定**。**設定**頁面隨即開啟。

1. 在**轉換**區段中，變更設定。

1. 選擇**套用**，然後選擇**確認**。

對於所有轉換配對，您可以在轉換的程式碼中限制具有動作項目的註解數量。若要限制已轉換程式碼中的註解數量，請在遷移專案中開啟轉換設定。

針對**已轉換 SQL 程式碼中的註解**，選擇動作項目的嚴重性層級。DMS 結構描述轉換會在已轉換的程式碼中，針對所選嚴重性及更高的動作項目新增註解。例如，若要將已轉換程式碼中的註解數量降到最低，請選擇**僅限錯誤**。

若要在已轉換的程式碼中包含所有動作項目的註解，請選擇**所有訊息**。

每對來源資料庫和目標資料庫的其他轉換設定都不同。

**Topics**
+ [了解 Oracle 到 MySQL 的轉換設定](schema-conversion-oracle-mysql.md)
+ [了解 Oracle 到 PostgreSQL 的轉換設定](schema-conversion-oracle-postgresql.md)
+ [了解 SQL Server 到 MySQL 的轉換設定](schema-conversion-sql-server-mysql.md)
+ [了解 SQL Server 到 PostgreSQL 的轉換設定](schema-conversion-sql-server-postgresql.md)
+ [了解 PostgreSQL 到 MySQL 轉換設定](schema-conversion-postgresql-mysql.md)
+ [了解 IBM Db2 for LUW to Amazon RDS for PostgreSQL 轉換設定](schema-conversion-db2-luw-postgresql.md)
+ [了解 z/OS 的 IBM Db2 到 Amazon RDS for Db2 轉換設定](schema-conversion-db2-zos-db2.md)
+ [了解 IBM Db2 for z/OS to Amazon RDS for PostgreSQL 轉換設定](schema-conversion-db2-zos-postgresql.md)
+ [了解 SAP ASE (Sybase ASE) 到 PostgreSQL 轉換設定](schema-conversion--sybase-ASE.md)

# 了解 Oracle 到 MySQL 的轉換設定
<a name="schema-conversion-oracle-mysql"></a>

DMS 結構描述轉換中的 Oracle 到 MySQL 轉換設定包括下列項目：
+ 您的來源 Oracle 資料庫可以使用 `ROWID` 虛擬資料欄。MySQL 不支援類似的功能。DMS 結構描述轉換可以在轉換後程式碼中模擬 `ROWID` 虛擬資料欄。若要這麼做，請開啟**產生資料列 ID** 選項。

  如果您的來源 Oracle 程式碼不使用 `ROWID` 虛擬資料欄，請關閉**產生資料列 ID** 選項。在此情況下，轉換後的程式碼運作得更快。
+ 您的原始 Oracle 程式碼可以包含 `TO_CHAR`、`TO_DATE`、和 `TO_NUMBER` 函數，其中包含 MySQL 不支援的參數。根據預設，DMS 結構描述轉換會在轉換後的程式碼中模擬這些參數的使用方式。

  當您的來源程式碼缺少 MySQL 不支援的參數時，您可以使用原生的 MySQL `TO_CHAR`、`TO_DATE` 和 `TO_NUMBER` 函數。在此情況下，轉換後的程式碼運作得更快。若要這樣做，請選取下列值：
  + **使用原生 MySQL TO\$1CHAR 函數**
  + **使用原生 MySQL TO\$1DATE 函數**
  + **使用原生 MySQL TO\$1NUMBER 函數**
+ 您的資料庫和應用程式可以在不同的時區執行。根據預設，DMS 結構描述轉換會模擬已轉換程式碼中的時區。但是，當您的資料庫和應用程式使用相同的時區時，就不需要此模擬。在此情況下，請選取**改善資料庫和應用程式使用相同時區的已轉換程式碼效能**。

# 了解 Oracle 到 PostgreSQL 的轉換設定
<a name="schema-conversion-oracle-postgresql"></a>

DMS 結構描述轉換中的 Oracle 到 PostgreSQL 轉換設定包括下列項目：
+ 若要使用生成式 AI 轉換適用的資料庫物件，請啟用**生成式 AI** 設定。使用生成式 AI 成功轉換的物件將明確識別為**動作項目 5444**，其中說明：「此轉換使用根據資料中的模式產生預測的機器學習模型。如需詳細資訊，請參閱[使用生成式 AI 轉換資料庫物件](schema-conversion-convert.databaseobjects.md)。
  + 您可以轉換目標資料庫不同支援版本的結構描述，而不只是最新版本。若要指定版本，請使用**目標引擎版本**設定。可用的轉換選項會根據您選擇的引擎版本而有所不同。目前支援 PostgreSQL 第 14 版和第 15 版 （具有相同的設定）。請注意，在結構描述轉換期間使用不同於此設定中指定版本的目標引擎版本，可能會在執行套用至目標操作時導致相容性問題和錯誤。
+ AWS DMS 可以將 Oracle 具體化視觀表轉換為 PostgreSQL 上的資料表或具體化視觀表。對於**具體化視觀表**，請選擇來源具體化視觀表的轉換方式。
+ 您的來源 Oracle 資料庫可以使用 `ROWID` 虛擬資料欄。PostgreSQL 不支援類似的功能。DMS 結構描述轉換可以在轉換後程式碼中使用 `bigint` 或 `character varying` 資料類型來模擬 `ROWID` 虛擬資料欄。若要這麼做，請為**資料列 ID** 選擇**使用 bigint 資料類型來模擬 ROWID 虛擬資料欄**，或是**使用 character varying 資料類型來模擬 ROWID 虛擬資料欄**。
  + 若要將 NUMBER 資料類型轉換為最適合的數值資料類型，視精確度和規模而定，您可以選取針對 NUMBER 資料類型的資料欄使用最佳化資料類型映射。
+ 如果您的來源 Oracle 程式碼不使用 `ROWID` 虛擬資料欄，請選擇**不產生**。在此情況下，轉換後的程式碼運作得更快。
+ 您的原始 Oracle 程式碼可以包含 `TO_CHAR`、`TO_DATE`、和 `TO_NUMBER` 函數，其中包含 PostgreSQL 不支援的參數。根據預設，DMS 結構描述轉換會在轉換後的程式碼中模擬這些參數的使用方式。

  當您的來源程式碼缺少 PostgreSQL 不支援的參數時，您可以使用原生的 PostgreSQL `TO_CHAR`、`TO_DATE` 和 `TO_NUMBER` 函數。在此情況下，轉換後的程式碼運作得更快。若要這樣做，請選取下列值：
  + **使用原生 PostgreSQL TO\$1CHAR 函數**
  + **使用原生 PostgreSQL TO\$1DATE 函數**
  + **使用原生 PostgreSQL TO\$1NUMBER 函數**
+ 您的資料庫和應用程式可以在不同的時區執行。根據預設，DMS 結構描述轉換會模擬已轉換程式碼中的時區。但是，當您的資料庫和應用程式使用相同的時區時，就不需要此模擬。在此情況下，請選取**改善資料庫和應用程式使用相同時區的已轉換程式碼效能**。
+ 若要繼續在轉換後的程式碼中使用序列，請選取**使用來源端產生的最後一個值填入轉換後的序列**。
+ 在某些情況下，您的來源 Oracle 資料庫可能只會在 `NUMBER` 資料類型的主索引鍵或外部索引鍵資料欄中儲存整數值。在這些情況下， AWS DMS 可以將這些資料欄轉換為 `BIGINT`資料類型。這種方法可以提高轉換後程式碼的性能。若要這麼做，請選取**將 NUMBER 資料類型的主索引鍵和外部索引鍵資料欄轉換為 BIGINT 資料類型**。請確定您的來源未在這些資料行中包含浮點值，以避免資料遺失。
+ 若要略過原始程式碼中停用的觸發程序和條件約束，請選擇**僅僅轉換作用中觸發程序和條件約束**。
+ 您可以使用 DMS 結構描述轉換來轉換稱為動態 SQL 的字串變數。您的資料庫程式碼可以變更這些字串變數的值。若要確保 AWS DMS 一律轉換此字串變數的最新值，請選取**轉換在稱為常式中建立的動態 SQL 程式碼**。
+ PostgreSQL 10 和更舊版本不支援程序。如果您不熟悉在 PostgreSQL 中使用程序， AWS DMS 可以將 Oracle 程序轉換為 PostgreSQL 函數。若要這樣做，請選取**將程序轉換為函數**。
+ 欲查看已發生動作項目的其他資訊，您可以將特定功能新增至延伸套件。若要這麼做，請選取**新增引發使用者定義例外狀況的延伸套件函數**。然後選擇嚴重性層級，以引發使用者定義的例外狀況。請務必先轉換來源資料庫物件，之後再套用延伸套件結構描述。如需詳細了解延伸套件，請參閱：[使用延伸套件](extension-pack.md)。
+ 您的來源 Oracle 資料庫可以包含自動產生名稱的限制條件。如果您的原始程式碼使用這些名稱，請務必選取**保留系統產生的限制條件名稱**。如果您的原始程式碼使用這些限制條件，但不使用其名稱，請清除此選項以提高轉換速度。
+ 如果來源和目標資料庫在不同的時區執行，模擬 `SYSDATE` 內建 Oracle 函數的函數會傳回與來源函數不同的值。若要確保來源和目標函數傳回相同的值，請選擇**設定來源資料庫的時區**。
+ 您可以在轉換後的程式碼中使用 orafce 延伸模組中的函數。若要這麼做，請針對 **Orafce 內建常式**選取要使用的函數。如需有關 Orafce 的詳細資訊，請參閱 GitHub 上的 [Orafce](https://github.com/orafce/orafce)。

# 了解 SQL Server 到 MySQL 的轉換設定
<a name="schema-conversion-sql-server-mysql"></a>

DMS 結構描述轉換中的 SQL Server 到 MySQL 轉換設定包括下列項目：
+ 您的來源 SQL Server 資料庫可以將 `EXEC` 的輸出儲存在資料表中。DMS 結構描述轉換會建立暫存資料表和其他程序來模擬此功能。若要使用此模擬，請選取**建立其他常式來處理開放資料集**。

# 了解 SQL Server 到 PostgreSQL 的轉換設定
<a name="schema-conversion-sql-server-postgresql"></a>

DMS 結構描述轉換中的 SQL Server 到 PostgreSQL 轉換設定包括下列項目：
+ 若要使用生成式 AI 轉換適用的資料庫物件，請啟用**生成式 AI** 設定。使用生成式 AI 成功轉換的物件將明確識別為**動作項目 7744**，其中說明：「此轉換使用根據資料中的模式產生預測的機器學習模型。」 如需詳細資訊，請參閱[使用生成式 AI 轉換資料庫物件](schema-conversion-convert.databaseobjects.md)。
+ 在 SQL Server 中，您可以在不同的資料表中使用相同的索引名稱。但是在 PostgreSQL 中，您在結構描述中使用的所有索引名稱都必須是唯一名稱。若要確保 DMS 結構描述轉換為您的所有索引產生唯一名稱，請選取**針對索引產生唯一的名稱**。
+ PostgreSQL 10 和更舊版本不支援程序。如果您不熟悉在 PostgreSQL 中使用程序， AWS DMS 可以將 SQL Server 程序轉換為 PostgreSQL 函數。若要這樣做，請選取**將程序轉換為函數**。
+ 您的來源 SQL Server 資料庫可以將 `EXEC` 的輸出儲存在資料表中。DMS 結構描述轉換會建立暫存資料表和其他程序來模擬此功能。若要使用此模擬，請選取**建立其他常式來處理開放資料集**。
+ 您可以定義轉換後程式碼中要用於結構描述名稱的範本。針對**結構描述名稱**，選擇以下其中一個選項：
  + **DB** – 使用 SQL 伺服器資料庫名稱作為 PostgreSQL 中的結構描述名稱。
  + **SCHEMA** – 使用 SQL 伺服器結構描述名稱作為 PostgreSQL 中的結構描述名稱。
  + **DB\$1SCHEMA** – 使用 SQL 伺服器資料庫和結構描述名稱的組合，作為 PostgreSQL 中的結構描述名稱。
+ 您可以在來源運算元的名稱中保留字母大小寫。若要避免將運算元名稱轉換為小寫，請選取**避免轉換為小寫以進行區分大小寫的操作**。只有在來源資料庫中啟用區分大小寫功能時，此選項才適用。
+ 您可以保留來源資料庫中的參數名稱。DMS 結構描述轉換可以在轉換後程式碼的參數名稱中加上雙引號。若要這樣做，請選取**保留原始參數名稱**。
+ 您可以保留來源資料庫的一段常式參數。DMS 結構描述轉換會建立網域，並使用網域來指定一段常式參數。若要這樣做，請選取**保留參數長度**。
+ 若要將不支援的內建物件轉換為 stub 物件，請啟用將**不支援的內建物件轉換為 stub 物件**設定：
  +  啟用時，DMS SC 會將不支援的內建物件取代為目標資料庫中對應的 stub 物件。此功能會轉換通常由遷移問題 7811 或 7904 封閉的程式碼區段。它會根據`PROCEDURE`程序的來源內建物件類型，`VIEW`為檢視或資料表建立 stub 物件。

    使用不支援的物件呼叫轉換來源資料庫物件會導致 stub 物件呼叫和遷移問題 7822。

    您可以透過在個別結構描述選項中啟用建立 stub 物件，選擇**在個別結構描述中建立 stub 物件**。選取時，stub 物件會在目標資料庫中名為 的特殊結構描述`aws_sqlserver_stub`中建立。如果未選取，它們會在與呼叫物件相同的結構描述中建立。
  + Stub 常式是根據原始內建的完整名稱來命名。對於 stub 檢視，命名慣例包含系統結構描述名稱 `system_schema_name$builtin_view_name`。

    在重新轉換期間，DMS SC 會檢查目標資料庫中現有的 stub 常式。如果具有相同名稱和輸入參數的常式已存在，則不會覆寫它。

    轉換後，視需要檢閱和實作 stub 常式的自訂程式碼。
+ `CITEXT` DMS 結構描述轉換中所有字串資料類型設定的資料類型包括下列項目：
  + 若要在從 SQL Server 轉換為 PostgreSQL 時使用不區分大小寫的字串操作的`CITEXT`資料類型，請**為所有字串資料類型設定啟用使用 CITEXT**。此選項有助於在從不區分大小寫的 SQL Server 遷移到區分大小寫的 PostgreSQL 環境時維持一致的行為。
  + 啟用時，DMS SC 會將來源 SQL Server 資料庫的所有相關字串資料類型轉換為 PostgreSQL `CITEXT`中的 。這消除了在條件中對明確 LOWER () 函數呼叫的需求，並自動將條件式操作中的字串表達式轉換為 `CITEXT`。
  + 若要判斷 SQL Server 執行個體是否區分大小寫，請執行下列查詢：

    ```
    SELECT SERVERPROPERTY('COLLATION');
    ```

    包含 'CI' 的結果表示不區分大小寫，而 'CS' 表示區分大小寫。
  + 在伺服器、資料庫或資料欄層級使用明確區分大小寫的定序設定的情況下，`CITEXT`轉換可能不適用。

    若要使用此功能，請確定`CITEXT`已安裝模組且可在目標 PostgreSQL 資料庫中使用。
  + 使用`CITEXT`資料類型轉換時，請考慮下列最佳實務：
    + 從不區分大小寫的 SQL Server 遷移時啟用此功能，以在 PostgreSQL 中維持一致的行為。
    + 檢閱您的應用程式程式碼，以確保它不依賴區分大小寫的字串操作。
    + 在遷移後徹底測試您的應用程式，以確認不區分大小寫的行為如預期般維護。

# 了解 PostgreSQL 到 MySQL 轉換設定
<a name="schema-conversion-postgresql-mysql"></a>

DMS 結構描述轉換中的 PostgreSQL 到 MySQL 轉換設定包括下列項目：
+ **轉換後 SQL 程式碼中的註解**：此設定包含轉換後程式碼中所選嚴重性及更高之動作項目的註解。此設定支援下列值：
  + 僅限錯誤
  + 錯誤和警告
  + 所有訊息

# 了解 IBM Db2 for LUW to Amazon RDS for PostgreSQL 轉換設定
<a name="schema-conversion-db2-luw-postgresql"></a>

**注意**  
 AWS 管理主控台不支援在 DMS 結構描述轉換中建立遷移專案，這些轉換使用 IBM Db2 for LUW 做為來源資料提供者，並將 Amazon RDS for PostgreSQL 做為目標資料提供者。請改用 AWS CLI 或 DMS 結構描述轉換 API。

DMS 結構描述轉換中的適用於 Linux、UNIX 和 Windows 的 IBM Db2 到 Amazon RDS for PostgreSQL 轉換設定包括下列項目：
+  **轉換後 SQL 程式碼中的註解**：此設定包含轉換後程式碼中所選嚴重性及更高之動作項目的註解。此設定支援下列值：
  + 僅限錯誤
  + 錯誤和警告
  + 所有訊息

# 了解 z/OS 的 IBM Db2 到 Amazon RDS for Db2 轉換設定
<a name="schema-conversion-db2-zos-db2"></a>

DMS 結構描述轉換中 z/OS 到 Amazon RDS for DB2 轉換設定的 IBM 包括下列項目：
+ **轉換後 SQL 程式碼中的註解**：此設定包含轉換後程式碼中所選嚴重性及更高之動作項目的註解。此設定支援下列值：
  + 僅限錯誤
  + 錯誤和警告
  + 所有訊息

# 了解 IBM Db2 for z/OS to Amazon RDS for PostgreSQL 轉換設定
<a name="schema-conversion-db2-zos-postgresql"></a>

**注意**  
 AWS 管理主控台不支援在 DMS 結構描述轉換中建立遷移專案，這些轉換會將 IBM Db2 做為 z/OS 的來源資料提供者，並將 Amazon RDS for PostgreSQL 做為目標資料提供者。請改用 AWS CLI 或 DMS 結構描述轉換 API。

DMS 結構描述轉換中 z/OS 到 Amazon RDS for PostgreSQL 轉換設定的 IBM Db2 包括下列項目：
+  **轉換後 SQL 程式碼中的註解**：此設定包含轉換後程式碼中所選嚴重性及更高之動作項目的註解。此設定支援下列值：
  + 僅限錯誤
  + 錯誤和警告
  + 所有訊息

# 了解 SAP ASE (Sybase ASE) 到 PostgreSQL 轉換設定
<a name="schema-conversion--sybase-ASE"></a>

DMS 結構描述轉換中的 SAP ASE (Sybase ASE) 至 PostgreSQL 轉換設定包括下列項目：
+ 若要使用生成式 AI 轉換適用的資料庫物件，請啟用**生成式 AI** 設定。使用生成式 AI 成功轉換的物件將使用**動作項目 3077** 明確識別，該項目陳述：「此轉換使用根據資料中的模式產生預測的機器學習模型。」 如需詳細資訊，請參閱[使用生成式 AI 轉換資料庫物件](schema-conversion-convert.databaseobjects.md)。
+ **轉換後 SQL 程式碼中的註解：**此設定包含轉換後程式碼中所選嚴重性及更高之動作項目的註解。此設定支援下列值：
  + 僅限錯誤
  + 錯誤和警告
  + 所有訊息
+ 您可以定義轉換後程式碼中要用於結構描述名稱的範本。針對**結構描述名稱**，選擇以下其中一個選項：
  + **資料庫** – 在 PostgreSQL 中使用 SAP ASE (Sybase ASE) 資料庫名稱做為結構描述名稱。
  + **SCHEMA** – 在 PostgreSQL 中使用 SAP ASE (Sybase ASE) 結構描述名稱做為結構描述名稱。
  + **DB\$1SCHEMA** – 使用 SAP ASE (Sybase ASE) 資料庫和結構描述名稱的組合做為其中的結構描述名稱。
+ 您可以從來源資料庫保留物件名稱的確切大小寫。若要這樣做，請選取將來源資料庫物件名稱視為區分大小寫。關閉此選項時，所有資料庫物件名稱都會轉換為小寫。
+ 您可以在不區分大小寫的操作期間，避免將運算元轉換為小寫。DMS 結構描述轉換不會將 LOWER 函數套用至轉換程式碼中的運算元。若要這樣做，請選取**避免將運算元轉換為不區分大小寫的操作**。未選取此選項時 （預設），DMS 結構描述轉換會自動套用 LOWER 函數，在執行不區分大小寫的比較之前將運算元轉換為小寫。
+ 在 SAP ASE (Sybase ASE) 中，您可以跨不同資料表建立具有相同名稱的索引。PostgreSQL 要求結構描述中的所有索引名稱都是唯一的。若要確保 AWS 結構描述轉換在遷移期間建立唯一的索引名稱，請選取**產生索引的唯一名稱**。此選項會自動將字首新增至索引名稱，以防止目標 PostgreSQL 資料庫中的命名衝突。