

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Oracle 到 MySQL 的转换设置
<a name="schema-conversion-oracle-mysql"></a>

当来源是 Oracle 且目标是 Amazon RDS for MySQL 或 Amazon Aurora MySQL 时，以下设置适用。您可以使用 AWS Management Console 或 [ModifyConversionConfiguration](https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyConversionConfiguration.html)API 操作配置这些设置。

本主题介绍特定于 Oracle 到 MySQL 转换路径的设置。除了这些设置外，DMS Schema Conversion 还提供适用于所有源和目标对的设置，例如转换后的 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)先调用并仅更新响应中显示的部分。

每个设置都显示 AWS Management Console 标签，后面是括号中的 AP AWS I 和 CLI 参数名称。使用 API 或 AWS CLI 配置设置时，请使用参数名称。

**生成行 ID** (`GenerateRowId`)  
源 Oracle 数据库可以使用 `ROWID` 伪列。MySQL 不支持类似功能。此设置指定 DMS 架构转换是否模拟转换后的代码中的`ROWID`伪列。      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/schema-conversion-oracle-mysql.html)
**类型：**布尔值 (`true`\|`false`)  
**默认值**：`false`  
对于 Oracle 到 MySQL 的转换路径，`GenerateRowId`是布尔值 (`true`\|`false`)，仅使用`bigint`数据类型来模拟`ROWID`伪列。对于 Oracle 到 PostgreSQL 的转换路径，同样的设置是一个字符串枚举，它还提供了`character varying`一个仿真选项 ()。`GENERATE_AS_CHARACTER_DOMAIN_TYPE`有关更多信息，请参阅 [Oracle 到 PostgreSQL 的转换设置](schema-conversion-oracle-postgresql.md)。

默认情况下，DMS 架构转换在转换后的代码中模拟 Oracle 转换函数，以便结果与 Oracle 行为相匹配。如果您的源代码不依赖 Oracle-specific 格式，则可以将这些函数转换为原生 MySQL 等效函数。原生函数运行得更快，因此`true`只有在确认自己的使用方法与 MySQL 兼容之后，才能将这些选项设置为。

**使用原生 MySQL TO\_CHAR 函数** () `ToCharFunctionOracle`  
指定 DMS 架构转换是否将 Oracle `TO_CHAR` 函数调用转换为原生 MySQL 函数，而不是模拟格式。 Oracle-specific   
+ `false`— DMS 架构转换模拟转换后的代码`TO_CHAR`中的 Oracle-specific格式。
+ `true`— 调用将转换为原生 MySQL `TO_CHAR` 函数。当您的源代码不使用 Oracle-specific 格式字符串时，请使用此选项。
**类型：**布尔值 (`true`\|`false`)  
**默认值**：`false`

**使用原生 MySQL 的 TO\_DATE 函数** () `ToDateFunctionOracle`  
指定 DMS 架构转换是否将 Oracle `TO_DATE` 函数调用转换为原生 MySQL 函数，而不是模拟格式。 Oracle-specific   
+ `false`— DMS 架构转换模拟转换后的代码`TO_DATE`中的 Oracle-specific格式。
+ `true`— 调用将转换为原生 MySQL `TO_DATE` 函数。当您的源代码不使用 Oracle-specific 格式字符串时，请使用此选项。
**类型：**布尔值 (`true`\|`false`)  
**默认值**：`false`

**使用原生 MySQL 的 TO\_NUMBER 函数** () `ToNumber`  
指定 DMS 架构转换是否将 Oracle `TO_NUMBER` 函数调用转换为原生 MySQL 函数，而不是模拟格式。 Oracle-specific   
+ `false`— DMS 架构转换模拟转换后的代码`TO_NUMBER`中的 Oracle-specific格式。
+ `true`— 调用将转换为原生 MySQL `TO_NUMBER` 函数。当您的源代码不使用 Oracle-specific 格式字符串时，请使用此选项。
**类型：**布尔值 (`true`\|`false`)  
**默认值**：`false`

**在数据库和应用程序使用相同时区的情况下，提高转换后的代码的性能** (`ToTimeZone`)  
指定 DMS 架构转换是否在转换后的代码中模拟时区。  
+ `true`— DMS 架构转换不模拟时区。当您的数据库和应用程序使用相同的时区时，请使用此选项。转换后的代码运行得更快。
+ `false`— DMS 架构转换在转换后的代码中模拟时区。
**类型：**布尔值 (`true`\|`false`)  
**默认值**：`false`

## 示例：将 Oracle 配置为 MySQL 设置
<a name="schema-conversion-oracle-mysql-example"></a>

以下示例将 Oracle 转换函数转换为该部分的本地 MySQL 等效函数。`ORACLE_TO_MYSQL`

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