View a markdown version of this page

Oracle 到 MySQL 的转换设置 - AWS Database Migration Service

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

Oracle 到 MySQL 的转换设置

当来源是 Oracle 且目标是 Amazon RDS for MySQL 或 Amazon Aurora MySQL 时,以下设置适用。您可以使用 AWS 管理控制台 或 ModifyConversionConfigurationAPI 操作配置这些设置。

本主题介绍特定于 Oracle 到 MySQL 转换路径的设置。除了这些设置外,DMS Schema Conversion 还提供适用于所有源和目标对的设置,例如转换后的 SQL 中操作项注释的严重性级别以及使用生成式 AI 进行转换的选项。有关这些设置,请参阅常用转换设置

使用 API 或 AWS CLI 时,请在分区名称下指定转换路径设置ORACLE_TO_MYSQL。要确认您的项目使用的分区名称,请DescribeConversionConfiguration先调用并仅更新响应中显示的部分。

每个设置都显示 AWS 管理控制台 标签,后面是括号中的 AP AWS I 和 CLI 参数名称。使用 API 或 AWS CLI 配置设置时,请使用参数名称。

生成行 ID (GenerateRowId)

源 Oracle 数据库可以使用 ROWID 伪列。MySQL 不支持类似功能。此设置指定 DMS 架构转换是否模拟转换后的代码中的ROWID伪列。

控制台标签 API/CLI 价值 行为
不要生成 false DMS 架构转换不会模拟ROWID伪列,而是将引用保留为操作项。当您的源 Oracle 代码不使用时,请使用此选项ROWID。转换后的代码运行得更快。
使用 bigint 数据类型来模拟 ROWID 伪列 true DMS 架构转换使用数据类型来模拟转换后的代码中的ROWID伪列。bigint

类型:布尔值 (true|false)

默认值false

注意

对于 Oracle 到 MySQL 的转换路径,GenerateRowId是布尔值 (true|false),仅使用bigint数据类型来模拟ROWID伪列。对于 Oracle 到 PostgreSQL 的转换路径,同样的设置是一个字符串枚举,它还提供了character varying一个仿真选项 ()。GENERATE_AS_CHARACTER_DOMAIN_TYPE有关更多信息,请参阅 Oracle 到 PostgreSQL 的转换设置

函数转换设置

默认情况下,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 设置

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

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