Converting database objects with generative AI
The DMS Schema Conversion with generative AI feature streamlines the database migration process by offering recommendations to help you convert previously unconverted code objects that typically require complex manual conversion. This feature is available for Oracle to PostgreSQL/Aurora PostgreSQL and SQL Server to PostgreSQL/Aurora PostgreSQL conversions. You can convert an entire database schema or individual database schema objects.
To convert your source database objects with generative AI, follow steps 1 to 6 in Converting database objects then continue with one of these two methods:
-
Method 1: From the Actions menu, select Convert. In the conversion dialog box that appears, enable the Convert schema with Generative AI option and click Convert.
-
Method 2: Click Convert schema with Generative AI in the top right corner. In the conversion dialog box, ensure the option is enabled and click Convert.
To manually adjust this setting at any time in DMS Schema Conversion console:
-
Navitage to the Settings tab.
-
In the Conversion settings section, enable the Generative AI option to approve the use of generative AI.
Note
Supported regions:
-
US East (N. Virginia)
-
US West (Oregon)
-
Europe (Frankfurt)
Supported conversion paths:
-
Oracle to Amazon RDS for PostgreSQL
-
Oracle to Amazon Aurora PostgreSQL
-
Microsoft SQL Server to Amazon RDS for PostgreSQL
-
Microsoft SQL Server to Amazon Aurora PostgreSQL
Scope of Generative AI conversion
Generative AI-assisted schema conversion focuses on specific SQL elements with designated action items. All other SQL elements are converted using default rule-based approaches. The SQL elements within the extended scope of Generative AI conversion include:
Conversion direction | Action item | Message | Syntax element |
---|---|---|---|
Oracle to Amazon RDS for PostgreSQL and Oracle to Amazon Aurora PostgreSQL | 5578 | Amazon DMS Schema Conversion cannot convert the SELECT statement | All occurrences except limitations |
30415 | Your MERGE statement contains a filtering condition in the WHERE clause that is based on a value in a target table column | All occurrences except limitations | |
5591 | Amazon DMS Schema Conversion cannot convert system objects | All occurrences except limitations | |
5029 | Amazon DMS Schema Conversion cannot convert the usage of objects with unsupported data types | Usage of objects with the unsupported STANDARD.BFILE data type in function and procedure arguments. | |
5031 | Amazon DMS Schema Conversion cannot convert CURSOR expressions | All occurrences except limitations | |
5043 | Amazon DMS Schema Conversion cannot convert hierarchical queries with an asterisk in the SELECT clause | All occurrences except limitations | |
5073 | PostgreSQL does not support hierarchical queries with pseudocolumns | All occurrences except limitations | |
5102 | PostgreSQL does not support MERGE statements | All occurrences except limitations | |
5585 | Amazon DMS Schema Conversion cannot convert outer joins into correlated subqueries | All occurrences except limitations | |
5608 | Amazon DMS Schema Conversion cannot convert UPDATE statements that have a subquery that returns multiple columns in the SET clause | All occurrences except limitations | |
5619 | Amazon DMS Schema Conversion cannot convert system objects | All occurrences except limitations | |
5852 | PostgreSQL supports only tables as a target in the MERGE statement. | All occurrences except limitations | |
5853 | Amazon DMS Schema Conversion supports only tables, views or sub-queries as a source in the USING clause of the MERGE statement | All occurrences except limitations | |
5855 | Your MERGE statement contains a filtering condition in the WHERE clause that is based on a value in a target table column | All occurrences except limitations | |
9996 | Internal Converter error occurred | All occurrences except limitations | |
9993 | Unable to transform statement due to references to unresolved object | All occurrences except limitations | |
5598 | PostgreSQL does not support ROWID | All occurrences except limitations | |
5340 | Amazon DMS Schema Conversion cannot convert functions | All occurrences except limitations | |
5071 | PostgreSQL does not support the INSERT statement for subqueries | All occurrences except limitations | |
5068 | PostgreSQL does not support the DELETE statement for subqueries | All occurrences except limitations | |
5065 | PostgreSQL does not support the UPDATE statement for subqueries | All occurrences except limitations | |
5586 | Amazon DMS Schema Conversion cannot convert queries with the NOCYCLE clause | All occurrences except limitations | |
5351 | Amazon DMS Schema Conversion cannot convert objects | All occurrences except limitations | |
5077 | PostgreSQL does not support the PIVOT clause for SELECT statements | All occurrences except limitations | |
5126 | PostgreSQL does not support MODEL statements | All occurrences except limitations | |
5121 | PostgreSQL does not support FORALL statements | All occurrences except limitations | |
5141 | Amazon DMS Schema Conversion does not support this type of conversion | All occurrences except limitations | |
5142 | Amazon DMS Schema Conversion cannot convert nested calls of the same method | All occurrences except limitations | |
5245 | PostgreSQL does not support views with nested table columns | All occurrences except limitations | |
5500 | Amazon DMS Schema Conversion cannot convert database mail sending | All occurrences except limitations | |
5501 | Amazon DMS Schema Conversion cannot convert scheduled jobs | All occurrences except limitations | |
5645 | PostgreSQL does not support BULK COLLECT INTO clauses for several object table targets. | All occurrences except limitations | |
5665 | PostgreSQL does not support the collection data type defined with PRAGMA AUTONOMOUS_TRANSACTION | All occurrences except limitations | |
5637 | PostgreSQL does not support bulk collect into VARRAY of VARRAY | All occurrences except limitations | |
5594 | Amazon DMS Schema Conversion cannot convert date time expressions | All occurrences except limitations | |
5622 | Amazon DMS Schema Conversion converts the dbms_transaction.local_transaction_id function with the parameter set to true | All occurrences except limitations | |
5643 | PostgreSQL does not support BULK COLLECT INTO clauses for multilevel collection types in SELECT statements. | All occurrences except limitations | |
5649 | PostgreSQL does not support multiset operators for multilevel collection types. | All occurrences except limitations | |
5651 | Amazon DMS Schema Conversion cannot convert pipelined table functions | All occurrences except limitations | |
5793 | Amazon DMS Schema Conversion creates the queue with the GRANT ALL option | All occurrences except limitations | |
5794 | PostgreSQL sets the queue mode to ENABLE by default | All occurrences except limitations | |
5795 | Amazon Simple Queue Service does not support queues in the DISABLE mode | All occurrences except limitations | |
Microsoft SQL Server to Amazon RDS for PostgreSQL and Microsoft SQL Server to Amazon Aurora PostgreSQL | 7610 | Amazon DMS Schema Conversion cannot convert unsupported DDL statements | All occurrences except limitations |
7622 | Amazon DMS Schema Conversion cannot convert the DELETE statement using complex inline functions | All occurrences except limitations | |
7624 | Amazon DMS Schema Conversion cannot convert the DELETE statement from an inline function for tables without primary keys | All occurrences except limitations | |
7626 | Amazon DMS Schema Conversion cannot convert the UPDATE statement using complex inline functions | All occurrences except limitations | |
7627 | Amazon DMS Schema Conversion cannot convert this syntax element | All occurrences except limitations | |
7628 | PostgreSQL does not support GOTO statements | All occurrences except limitations | |
7637 | PostgreSQL does not support global cursors | All occurrences except limitations | |
7639 | PostgreSQL does not support dynamic cursors | All occurrences except limitations | |
7644 | PostgreSQL does not support the %s clause | All occurrences except limitations | |
7645 | PostgreSQL does not support running pass-through commands on linked servers | All occurrences except limitations | |
7653 | PostgreSQL does not support GROUP BY ROLLUP clauses | All occurrences except limitations | |
7654 | PostgreSQL does not support GROUP BY CUBE clauses | All occurrences except limitations | |
7655 | PostgreSQL does not support GROUP BY GROUPING SETS clauses | All occurrences except limitations | |
7672 | PostgreSQL does not support EXECUTE statements that run a character string | All occurrences except limitations | |
7683 | MERGE is not supported if the target is a view, a materialized view, or an external table | All occurrences except limitations | |
7687 | PostgreSQL does not support CONTAINS predicates | All occurrences except limitations | |
7688 | PostgreSQL does not support FREETEXT predicates | All occurrences except limitations | |
7691 | PostgreSQL does not support the WAITFOR TIME feature | All occurrences except limitations | |
7695 | PostgreSQL does not support the call of a procedure as a variable | All occurrences except limitations | |
7696 | Amazon DMS Schema Conversion cannot convert the object because the
%s
object is not created |
All occurrences except limitations | |
7708 | Amazon DMS Schema Conversion cannot convert the usage of the
unsupported
%s
data type |
All occurrences except limitations | |
7709 | Amazon DMS Schema Conversion cannot convert the usage of a symmetric key | All occurrences except limitations | |
7773 | Amazon DMS Schema Conversion cannot convert arithmetic operations with dates | All occurrences except limitations | |
7774 | Amazon DMS Schema Conversion cannot convert arithmetic operations with mixed types of operands | All occurrences except limitations | |
7794 | PostgreSQL does not support user-defined data types | All occurrences except limitations | |
7796 | PostgreSQL does not support TOP clauses in UPDATE statements | All occurrences except limitations | |
7797 | PostgreSQL does not support the DELETED column prefix for OUTPUT clauses in UPDATE statements | All occurrences except limitations | |
7798 | PostgreSQL does not support TOP clauses in DELETE statements | All occurrences except limitations | |
7799 | PostgreSQL does not support TOP clauses in INSERT operators | All occurrences except limitations | |
7804 | PostgreSQL does not support the bitwise exclusive OR operator | All occurrences except limitations | |
7805 | PostgreSQL does not support the !< |
All occurrences except limitations | |
7806 | PostgreSQL does not support the !> (not greater than) operator | All occurrences except limitations | |
7811 | PostgreSQL does not support the %s function. Amazon DMS Schema Conversion skips this unsupported function in the converted code | All occurrences except limitations, excluding DDL | |
7816 | PostgreSQL does not support methods for the XML data type | All occurrences except limitations | |
7817 | PostgreSQL does not support the FOR XML PATH option in SQL queries | All occurrences except limitations | |
7818 | PostgreSQL does not support arithmetic operations with binary data types | All occurrences except limitations | |
7819 | PostgreSQL does not support INSERT...EXECUTE statements | All occurrences except limitations | |
7820 | PostgreSQL does not support the VALUE() method | All occurrences except limitations | |
7824 | RECURSIVE CTE is not supported for MERGE statement | All occurrences except limitations | |
7829 | Amazon DMS Schema Conversion cannot convert variable assignments with UPDATE statements | All occurrences except limitations | |
7830 | Amazon DMS Schema Conversion cannot convert arithmetic operations with the CASE operand | All occurrences except limitations | |
7832 | Amazon DMS Schema Conversion cannot convert INSTEAD OF triggers on views | All occurrences except limitations | |
7833 | Amazon DMS Schema Conversion cannot convert the
@@rowcount function in the current context |
All occurrences except limitations | |
7836 | PostgreSQL does not support write operations for binary data | All occurrences except limitations | |
7840 | Amazon DMS Schema Conversion cannot convert Database Console Command statements | All occurrences except limitations | |
7904 | Amazon DMS Schema Conversion cannot convert the %s system object | All occurrences except limitations | |
7905 | PostgreSQL does not support PIVOT clauses for SELECT statements | All occurrences except limitations | |
7906 | PostgreSQL does not support UNPIVOT clauses for SELECT statements | All occurrences except limitations | |
7909 | Amazon DMS Schema Conversion cannot convert UPDATE(column) OR COLUMNS_UPDATED statements | All occurrences except limitations | |
7916 | Amazon DMS Schema Conversion cannot emulate the MERGE statement using the INSERT ON CONFLICT statement | All occurrences except limitations | |
7917 | PostgreSQL does not support the %s function | All occurrences except limitations | |
7918 | PostgreSQL does not support table-valued functions | All occurrences except limitations | |
7919 | PostgreSQL does not support FOR XML with the %s directive | All occurrences except limitations | |
7920 | PostgreSQL does not support EXPLICIT mode with FOR XML | All occurrences except limitations | |
7925 | PostgreSQL does not support the percent character for OPENXML flags | All occurrences except limitations | |
7927 | PostgreSQL does not support OUTER joins for self-referenced tables without a primary key | All occurrences except limitations | |
7929 | Amazon DMS Schema Conversion cannot convert INSERT from EXEC statements | All occurrences except limitations | |
7939 | Amazon DMS Schema Conversion cannot convert the %s JSON system function | All occurrences except limitations | |
7940 | Amazon DMS Schema Conversion cannot convert OPENJSON system table-valued functions | All occurrences except limitations | |
7941 | Amazon DMS Schema Conversion cannot convert all open datasets because you have multiple open datasets | All occurrences except limitations | |
9996 | Internal Converter error occurred | All occurrences except limitations |
Limitations
The Converting database objects with generative AI feature has the following limitations:
-
Database endpoints supporting generative AI conversion are not visible in the Amazon Console. You can view them only by exporting the assessment report as a PDF or CSV file.
-
As a probabilistic system, generative AI-assisted Schema Conversion may not achieve 100 percent accuracy in all conversions. It can also produce different results for the same SQL statements over a period of time. You must review and validate all conversion outputs.
-
Generative AI conversion is not supported for:
-
DEFAULT constraint in a table
-
DEFAULT value for a function or procedure parameter
-
TRIGGER
-
COLUMN DATA TYPE
-
Dynamic SQL
-
INDEX
-
CONSTRAINT
-
-
If the source statement is converted with multiple action items and at least one action item is processed using generative AI, then all Action Items are replaced by one action item 5444 on a target for Oracle and 7744 for Microsoft SQL Server. The action item 9997 is an exception that is saved after processed using generative AI.
Warning
Conversion using generative AI takes longer than basic conversion.
Every Amazon account have a per-minute quota limiting the number of SQL statements that can be converted using generative AI. Statements exceeding this limit are queued for processing in subsequent minutes. The quota is as follows:
Region | SQL Statements per Amazon account per minute |
---|---|
US East (N. Virginia) | Up to 20 statements |
US West (Oregon) | Up to 100 statements |
Europe (Frankfurt) | Up to 10 statements |