

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

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

當來源為 Oracle 且目標為 Amazon RDS for MySQL 或 Amazon Aurora MySQL 時，會套用下列設定。您可以使用 AWS 管理主控台 或 [ModifyConversionConfiguration](https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyConversionConfiguration.html) API 操作來設定這些設定。

本主題涵蓋 Oracle 至 MySQL 轉換路徑的特定設定。除了這些設定之外，DMS 結構描述轉換還提供適用於所有來源和目標對的設定，例如轉換後 SQL 中動作項目註解的嚴重性等級，以及使用生成式 AI 轉換的選項。如需這些設定，請參閱 [常見的轉換設定](schema-conversion-settings.md#schema-conversion-settings-common)。

當您使用 API 或 AWS CLI 時，請在區段名稱 下指定轉換路徑設定`ORACLE_TO_MYSQL`。若要確認您的專案使用的區段名稱，請先呼叫 [DescribeConversionConfiguration](https://docs.aws.amazon.com/dms/latest/APIReference/API_DescribeConversionConfiguration.html)，並僅更新回應中存在的區段。

每個設定都會在括號中顯示 API 和 AWS CLI 參數名稱後面的 AWS 管理主控台 標籤。使用 API 或 CLI AWS 設定設定時，請使用 參數名稱。

**產生資料列 ID **(`GenerateRowId`)  
您的來源 Oracle 資料庫可以使用 `ROWID` 虛擬資料欄。MySQL 不支援類似的功能。此設定指定 DMS 結構描述轉換是否模擬轉換程式碼中的`ROWID`虛擬資料欄。      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/schema-conversion-oracle-mysql.html)
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`  
對於 Oracle 到 MySQL `ROWID` 轉換路徑， `GenerateRowId` 是布林值 (`true` \| `false`)，並僅使用 `bigint`資料類型模擬虛擬資料欄。對於 Oracle 到 PostgreSQL 轉換路徑，相同的設定是字串列舉，也提供模擬選項 `character varying` (`GENERATE_AS_CHARACTER_DOMAIN_TYPE`)。如需詳細資訊，請參閱[Oracle 到 PostgreSQL 轉換設定](schema-conversion-oracle-postgresql.md)。

根據預設，DMS 結構描述轉換會在轉換後的程式碼中模擬 Oracle 轉換函數，讓結果符合 Oracle 行為。如果您的原始程式碼不依賴 Oracle 特定的格式，您可以改為將這些函數轉換為原生 MySQL 對等項目。原生函數執行速度更快，因此`true`只有在您確認用量與 MySQL 相容後，才能將這些選項設定為 。

**使用原生 MySQL TO\_CHAR 函數 **(`ToCharFunctionOracle`)  
指定 DMS 結構描述轉換是否將 Oracle `TO_CHAR`函數呼叫轉換為原生 MySQL 函數，而不是模擬 Oracle 特定的格式。  
+ `false` — DMS 結構描述轉換模擬轉換程式碼`TO_CHAR`中 Oracle 特定的格式。
+ `true` — 呼叫會轉換為原生 MySQL `TO_CHAR`函數。當您的原始程式碼不使用 Oracle 特定的格式字串時，請使用此選項。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

**使用原生 MySQL TO\_DATE 函數 **(`ToDateFunctionOracle`)  
指定 DMS 結構描述轉換是否將 Oracle `TO_DATE`函數呼叫轉換為原生 MySQL 函數，而不是模擬 Oracle 特定的格式。  
+ `false` — DMS 結構描述轉換模擬轉換程式碼`TO_DATE`中 Oracle 特定的格式。
+ `true` — 呼叫會轉換為原生 MySQL `TO_DATE`函數。當您的原始程式碼不使用 Oracle 特定的格式字串時，請使用此選項。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

**使用原生 MySQL TO\_NUMBER 函數 **(`ToNumber`)  
指定 DMS 結構描述轉換是否將 Oracle `TO_NUMBER`函數呼叫轉換為原生 MySQL 函數，而不是模擬 Oracle 特定的格式。  
+ `false` — DMS 結構描述轉換模擬轉換程式碼`TO_NUMBER`中 Oracle 特定的格式。
+ `true` — 呼叫會轉換為原生 MySQL `TO_NUMBER`函數。當您的原始程式碼不使用 Oracle 特定的格式字串時，請使用此選項。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

**改善轉換後程式碼的效能，其中資料庫和應用程式使用相同的時區 **(`ToTimeZone`)  
指定 DMS 結構描述轉換是否模擬轉換程式碼中的時區。  
+ `true` — DMS 結構描述轉換不會模擬時區。當您的資料庫和應用程式使用相同的時區時，請使用此選項。轉換後的程式碼執行速度更快。
+ `false` — DMS 結構描述轉換模擬轉換程式碼中的時區。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

## 範例：將 Oracle 設定為 MySQL 設定
<a name="schema-conversion-oracle-mysql-example"></a>

下列範例會將 Oracle 轉換函數轉換為 `ORACLE_TO_MYSQL`區段的原生 MySQL 對等項目。

```
{
  "ORACLE_TO_MYSQL": {
    "ToCharFunctionOracle": true,
    "ToDateFunctionOracle": true,
    "ToNumber": true
  }
}
```