本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用生成式 AI 转换数据库对象
带有生成式 AI 的 DMS 架构转换功能通过提供建议来帮助您转换以前未转换的代码对象(通常需要复杂的手动转换),从而简化了数据库迁移过程。此功能可用于 Oracle 到 PostgreSQL 以及 SQL Server 到 PostgreS PostgreSQL/Aurora QL/Aurora PostgreSQL 的转换。您可以转换整个数据库架构或单个数据库架构对象。
要使用生成式 AI 转换源数据库对象,请按照转换数据库对象中的步骤 1 到 6 进行操作,然后继续使用以下两种方法之一:
-
方法 1:从 “操作” 菜单中选择 “转换”。在出现的转换对话框中,启用 “使用生成式 AI 转换架构” 选项,然后单击 “转换”。
-
方法 2:点击右上角的 “使用生成式 AI 转换架构”。在转换对话框中,确保该选项已启用,然后单击 “转换”。
要随时在 DMS 架构转换控制台中手动调整此设置,请执行以下操作:
-
导航到 “设置” 选项卡。
-
在转换设置部分,启用生成式 AI 选项以批准使用生成式 AI。
注意
支持的区域:
-
美国东部(弗吉尼亚州北部)
-
美国西部(俄勒冈州)
-
欧洲地区(法兰克福)
支持的转换路径:
-
Oracle 到 Amazon RDS for PostgreSQL
-
甲骨文到亚马逊 Aurora PostgreSQL
-
微软 SQL Server 到亚马逊 RDS for PostgreSQL
-
微软 SQL Server 到亚马逊 Aurora PostgreSQL
生成式 AI 转换的范围
生成式 AI 辅助架构转换侧重于具有指定操作项的特定 SQL 元素。所有其他 SQL 元素都使用基于规则的默认方法进行转换。生成式 AI 转换扩展范围内的 SQL 元素包括:
转换方向 | 行动项目 | 消息 | 语法元素 |
---|---|---|---|
甲骨文转亚马逊 RDS for PostgreSQL,甲骨文改为亚马逊 Aurora PostgreSQL | 5578 | Amazon DMS 架构转换无法转换 SELECT 语句 | 除限制之外的所有情况 |
30415 | 您的 MERGE 语句在 WHERE 子句中包含基于目标表列中的值的筛选条件 | 除限制之外的所有情况 | |
5591 | Amazon DMS 架构转换无法转换系统对象 | 除限制之外的所有情况 | |
5029 | Amazon DMS 架构转换无法转换数据类型不支持的对象的用法 | 在函数和过程参数中使用不支持的 STANDARD.BFILE 数据类型的对象。 | |
5031 | Amazon DMS 架构转换无法转换 CURSOR 表达式 | 除限制之外的所有情况 | |
5043 | Amazon DMS 架构转换无法转换 SELECT 子句中带有星号的分层查询 | 除限制之外的所有情况 | |
5073 | PostgreSQL 不支持带有伪列的分层查询 | 除限制之外的所有情况 | |
5102 | PostgreSQL 不支持合并语句 | 除限制之外的所有情况 | |
5585 | Amazon DMS 架构转换无法将外部联接转换为相关的子查询 | 除限制之外的所有情况 | |
5608 | Amazon DMS 如果子查询在 SET 子句中返回多列,则架构转换无法转换 UPDATE 语句 | 除限制之外的所有情况 | |
5619 | Amazon DMS 架构转换无法转换系统对象 | 除限制之外的所有情况 | |
5852 | PostgreSQL 在 MERGE 语句中仅支持将表作为目标。 | 除限制之外的所有情况 | |
5853 | Amazon DMS 架构转换仅支持表、视图或子查询作为 MERGE 语句的 USING 子句中的源 | 除限制之外的所有情况 | |
5855 | 您的 MERGE 语句在 WHERE 子句中包含基于目标表列中的值的筛选条件 | 除限制之外的所有情况 | |
9996 | 出现内部转换器错误 | 除限制之外的所有情况 | |
9993 | 由于引用了未解析的对象,无法转换语句 | 除限制之外的所有情况 | |
5598 | PostgreSQL 不支持 ROWID | 除限制之外的所有情况 | |
5340 | Amazon DMS 架构转换无法转换函数 | 除限制之外的所有情况 | |
5071 | PostgreSQL 不支持子查询的 INSERT 语句 | 除限制之外的所有情况 | |
5068 | PostgreSQL 不支持子查询的 DELETE 语句 | 除限制之外的所有情况 | |
5065 | PostgreSQL 不支持子查询的 UPDATE 语句 | 除限制之外的所有情况 | |
5586 | Amazon DMS 架构转换无法使用 NOCYCLE 子句转换查询 | 除限制之外的所有情况 | |
5351 | Amazon DMS 架构转换无法转换对象 | 除限制之外的所有情况 | |
5077 | PostgreSQL 不支持 SELECT 语句的 PIVOT 子句 | 除限制之外的所有情况 | |
5126 | PostgreSQL 不支持模型语句 | 除限制之外的所有情况 | |
5121 | PostgreSQL 不支持 FORALL 语句 | 除限制之外的所有情况 | |
5141 | Amazon DMS 架构转换不支持这种类型的转换 | 除限制之外的所有情况 | |
5142 | Amazon DMS 架构转换无法转换相同方法的嵌套调用 | 除限制之外的所有情况 | |
5245 | PostgreSQL 不支持带有嵌套表列的视图 | 除限制之外的所有情况 | |
5500 | Amazon DMS 架构转换无法转换数据库邮件发送 | 除限制之外的所有情况 | |
5501 | Amazon DMS 架构转换无法转换计划作业 | 除限制之外的所有情况 | |
5645 | PostgreSQL 不支持多个对象表目标的 BULK COLLECT INTO 子句。 | 除限制之外的所有情况 | |
5665 | PostgreSQL 不支持用 PRAGMA AUTOMONOUS_TRANSACTION 定义的集合数据类型 | 除限制之外的所有情况 | |
5637 | PostgreSQL 不支持批量收集到 VARRAY 的 VARRAY 中 | 除限制之外的所有情况 | |
5594 | Amazon DMS 架构转换无法转换日期时间表达式 | 除限制之外的所有情况 | |
5622 | Amazon DMS 架构转换会转换参数设置为 true 的 dbms_transaction.local_transaction_id 函数 | 除限制之外的所有情况 | |
5643 | PostgreSQL 不支持 SELECT 语句中针对多级集合类型的 BULK COLLECT INTO 子句。 | 除限制之外的所有情况 | |
5649 | PostgreSQL 不支持多级集合类型的多集运算符。 | 除限制之外的所有情况 | |
5651 | Amazon DMS 架构转换无法转换流水线表函数 | 除限制之外的所有情况 | |
5793 | Amazon DMS 架构转换使用 GRANT ALL 选项创建队列 | 除限制之外的所有情况 | |
5794 | PostgreSQL 默认将队列模式设置为启用 | 除限制之外的所有情况 | |
5795 | Amazon 简单队列服务不支持处于禁用模式的队列 | 除限制之外的所有情况 | |
微软 SQL Server 到亚马逊 RDS for PostgreSQL 和微软 SQL Server 到亚马逊 Aurora PostgreSQL | 7610 | Amazon DMS 架构转换无法转换不支持的 DDL 语句 | 除限制之外的所有情况 |
7622 | Amazon DMS 架构转换无法使用复杂的内联函数转换 DELETE 语句 | 除限制之外的所有情况 | |
7624 | Amazon DMS 对于没有主键的表,架构转换无法将 DELETE 语句转换为内联函数 | 除限制之外的所有情况 | |
7626 | Amazon DMS 架构转换无法使用复杂的内联函数转换 UPDATE 语句 | 除限制之外的所有情况 | |
7627 | Amazon DMS 架构转换无法转换此语法元素 | 除限制之外的所有情况 | |
7628 | PostgreSQL 不支持 GOTO 语句 | 除限制之外的所有情况 | |
7637 | PostgreSQL 不支持全局游标 | 除限制之外的所有情况 | |
7639 | PostgreSQL 不支持动态游标 | 除限制之外的所有情况 | |
7644 | PostgreSQL 不支持 %s 子句 | 除限制之外的所有情况 | |
7645 | PostgreSQL 不支持在链接服务器上运行直通命令 | 除限制之外的所有情况 | |
7653 | PostgreSQL 不支持 GROUP BY ROLLUP 子句 | 除限制之外的所有情况 | |
7654 | PostgreSQL 不支持 GROUP BY CUBE 子句 | 除限制之外的所有情况 | |
7655 | PostgreSQL 不支持按分组集分组子句 | 除限制之外的所有情况 | |
7672 | PostgreSQL 不支持运行字符串的 EXECUTE 语句 | 除限制之外的所有情况 | |
7683 | 如果目标是视图、实例化视图或外部表,则不支持 MERGE | 除限制之外的所有情况 | |
7687 | PostgreSQL 不支持 CONTAINS 谓词 | 除限制之外的所有情况 | |
7688 | PostgreSQL 不支持 FREETEXT 谓词 | 除限制之外的所有情况 | |
7691 | PostgreSQL 不支持 WAITFOR TIME 功能 | 除限制之外的所有情况 | |
7695 | PostgreSQL 不支持将过程作为变量调用 | 除限制之外的所有情况 | |
7696 | Amazon DMS 架构转换无法转换对象,因为该%s 对象尚未创建 |
除限制之外的所有情况 | |
7708 | Amazon DMS 架构转换无法转换不支持%s 的数据类型的用法 |
除限制之外的所有情况 | |
7709 | Amazon DMS 架构转换无法转换对称密钥的用法 | 除限制之外的所有情况 | |
7773 | Amazon DMS 架构转换无法使用日期转换算术运算 | 除限制之外的所有情况 | |
7774 | Amazon DMS 架构转换无法转换具有混合类型操作数的算术运算 | 除限制之外的所有情况 | |
7794 | PostgreSQL 不支持用户定义的数据类型 | 除限制之外的所有情况 | |
7796 | PostgreSQL 不支持 UPDATE 语句中的 TOP 子句 | 除限制之外的所有情况 | |
7797 | PostgreSQL 不支持 UPDATE 语句中输出子句的已删除列前缀 | 除限制之外的所有情况 | |
7798 | PostgreSQL 不支持 DELETE 语句中的 TOP 子句 | 除限制之外的所有情况 | |
7799 | PostgreSQL 不支持 INSERT 运算符中的 TOP 子句 | 除限制之外的所有情况 | |
7804 | PostgreSQL 不支持按位异或 OR 运算符 | 除限制之外的所有情况 | |
7805 | PostgreSQL 不支持 !< |
除限制之外的所有情况 | |
7806 | PostgreSQL 不支持! >(不大于)运算符 | 除限制之外的所有情况 | |
7811 | PostgreSQL 不支持 %s 函数。 Amazon DMS 架构转换会跳过转换后的代码中这个不支持的函数 | 除限制之外的所有事件,不包括 DDL | |
7816 | PostgreSQL 不支持 XML 数据类型的方法 | 除限制之外的所有情况 | |
7817 | PostgreSQL 不支持 SQL 查询中的 FOR XML 路径选项 | 除限制之外的所有情况 | |
7818 | PostgreSQL 不支持使用二进制数据类型的算术运算 | 除限制之外的所有情况 | |
7819 | PostgreSQL 不支持 INSERT... EXECUTE 语句 | 除限制之外的所有情况 | |
7820 | PostgreSQL 不支持 VALUE () 方法 | 除限制之外的所有情况 | |
7824 | MERGE 语句不支持递归 CTE | 除限制之外的所有情况 | |
7829 | Amazon DMS 架构转换无法使用 UPDATE 语句转换变量赋值 | 除限制之外的所有情况 | |
7830 | Amazon DMS 架构转换无法使用 CASE 操作数转换算术运算 | 除限制之外的所有情况 | |
7832 | Amazon DMS 架构转换无法在视图上转换 INSTEAD OF 触发器 | 除限制之外的所有情况 | |
7833 | Amazon DMS 架构转换无法在当前上下文中转换@@rowcount 函数 |
除限制之外的所有情况 | |
7836 | PostgreSQL 不支持对二进制数据进行写入操作 | 除限制之外的所有情况 | |
7840 | Amazon DMS 架构转换无法转换数据库控制台命令语句 | 除限制之外的所有情况 | |
7904 | Amazon DMS 架构转换无法转换 %s 系统对象 | 除限制之外的所有情况 | |
7905 | PostgreSQL 不支持 SELECT 语句的 PIVOT 子句 | 除限制之外的所有情况 | |
7906 | PostgreSQL 不支持 SELECT 语句的 UNPIVOT 子句 | 除限制之外的所有情况 | |
7909 | Amazon DMS 架构转换无法转换 UPDATE(列)或 COLUMNS_UPDATED 语句 | 除限制之外的所有情况 | |
7916 | Amazon DMS 架构转换无法使用 INSERT ON CONFLICT 语句模拟 MERGE 语句 | 除限制之外的所有情况 | |
7917 | PostgreSQL 不支持 %s 函数 | 除限制之外的所有情况 | |
7918 | PostgreSQL 不支持表值函数 | 除限制之外的所有情况 | |
7919 | PostgreSQL 不支持带有 %s 指令的 XML | 除限制之外的所有情况 | |
7920 | PostgreSQL 不支持使用 FOR XML 的显式模式 | 除限制之外的所有情况 | |
7925 | PostgreSQL 不支持 OPENXML 标志的百分比字符 | 除限制之外的所有情况 | |
7927 | PostgreSQL 不支持没有主键的自引用表的外部联接 | 除限制之外的所有情况 | |
7929 | Amazon DMS 架构转换无法从 EXEC 语句转换 INSERT 语句 | 除限制之外的所有情况 | |
7939 | Amazon DMS 架构转换无法转换 %s JSON 系统函数 | 除限制之外的所有情况 | |
7940 | Amazon DMS 架构转换无法转换 OPENJSON 系统表值函数 | 除限制之外的所有情况 | |
7941 | Amazon DMS 架构转换无法转换所有打开的数据集,因为您有多个打开的数据集 | 除限制之外的所有情况 | |
9996 | 出现内部转换器错误 | 除限制之外的所有情况 |
限制
使用生成式 AI 转换数据库对象功能有以下限制:
-
支持生成式 AI 转换的数据库端点在 Amazon 控制台中不可见。您只能通过将评估报告导出为 PDF 或 CSV 文件来查看。
-
作为一种概率系统,生成式 AI 辅助架构转换可能无法在所有转换中实现 100% 的准确性。它还可能在一段时间内为相同的 SQL 语句生成不同的结果。您必须查看并验证所有转换输出。
-
以下各项不支持生成式 AI 转换:
-
表中的默认约束
-
函数或过程参数的默认值
-
TRIGGER
-
列数据类型
-
动态 SQL
-
INDEX
-
CONSTRAINT
-
-
如果源语句使用多个操作项进行转换,并且使用生成式 AI 处理至少一个操作项,则所有操作项都将替换为 Oracle 目标上的一个操作项 5444 和 Microsoft SQL Server 上的一个操作项 7744。操作项目 9997 是一个异常,在使用生成式 AI 处理后保存。
警告
使用生成式 AI 进行转换所需的时间比基本转换更长。
每个 Amazon 账户都有每分钟配额,限制可以使用生成式 AI 转换的 SQL 语句的数量。超过此限制的语句将在接下来的几分钟内排队等候处理。配额如下:
区域 | 每 Amazon 账户每分钟 SQL 语句 |
---|---|
美国东部(弗吉尼亚州北部) | 最多 20 个语句 |
美国西部(俄勒冈州) | 最多 100 个语句 |
欧洲地区(法兰克福) | 最多 10 个语句 |