本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 价值 行为 不要生成 falseDMS 架构转换不会模拟 ROWID伪列,而是将引用保留为操作项。当您的源 Oracle 代码不使用时,请使用此选项ROWID。转换后的代码运行得更快。使用 bigint 数据类型来模拟 ROWID 伪列 trueDMS 架构转换使用数据类型来模拟转换后的代码中的 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— 调用将转换为原生 MySQLTO_CHAR函数。当您的源代码不使用 Oracle-specific 格式字符串时,请使用此选项。
类型:布尔值 (
true|false)默认值:
false -
- 使用原生 MySQL 的 TO_DATE 函数 ()
ToDateFunctionOracle -
指定 DMS 架构转换是否将 Oracle
TO_DATE函数调用转换为原生 MySQL 函数,而不是模拟格式。 Oracle-specific-
false— DMS 架构转换模拟转换后的代码TO_DATE中的 Oracle-specific格式。 -
true— 调用将转换为原生 MySQLTO_DATE函数。当您的源代码不使用 Oracle-specific 格式字符串时,请使用此选项。
类型:布尔值 (
true|false)默认值:
false -
- 使用原生 MySQL 的 TO_NUMBER 函数 ()
ToNumber -
指定 DMS 架构转换是否将 Oracle
TO_NUMBER函数调用转换为原生 MySQL 函数,而不是模拟格式。 Oracle-specific-
false— DMS 架构转换模拟转换后的代码TO_NUMBER中的 Oracle-specific格式。 -
true— 调用将转换为原生 MySQLTO_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 } }