转换工作区可帮助您将源数据库中的架构和对象转换为与目标数据库兼容的 SQL 语法。本页面简要介绍了 Database Migration Service 转换工作区:
源架构初始化选项介绍了如何通过直接连接到数据库或将架构文件上传到 Cloud Storage 来填充工作区。
转换概览提供架构转换进度的横截面。
确定性代码和架构转换支持的对象列出了确定性架构转换支持的 Oracle 对象。
交互式 SQL 编辑器介绍了您可以直接在转换工作区编辑器中修改哪些对象。
依托 Gemini 的转换功能探讨了如何集成生成式 AI 支持来加快架构转换过程。
转换映射文件部分简要介绍了可用于替换确定性架构转换规则的自定义指令。
旧版转换工作区介绍了不支持交互式 SQL 编辑器的旧版工作区。
Oracle 迁移不支持某些数据类型。如需了解详情,请参阅 数据类型的已知限制。
源架构初始化选项
为了转换数据库架构,Database Migration Service 需要源数据库对象的初始快照。您可以通过以下两种方式提供此快照:
- 直接数据库连接:Database Migration Service 通过连接配置文件直接连接到正在运行的源数据库,并通过网络连接检索架构。
- Cloud Storage 中的架构文件:您可以使用 Google 提供的提取脚本在本地提取架构元数据,将生成的文件上传到 Cloud Storage 存储桶,并在不连接到源数据库的情况下准备工作区。
如需了解如何通过直接数据库连接或 Cloud Storage 中的架构文件创建转换工作区,请参阅创建转换工作区。
转换进度概览
转换工作区提供全面的概览信息,您可以在其中深入了解未解决或已解决的转换问题总数、Gemini 辅助增强功能以及转换流程的总体健康状况。
您可以使用此视图按类型、问题严重程度、需要采取行动或转换状态过滤架构中的对象。
如需详细了解如何使用转换概览来检查转换结果,请参阅 使用转换工作区。
确定性代码和架构转换
创建转换工作区后,Database Migration Service 会立即使用一组确定性转换规则执行初始架构转换,其中特定的 Oracle 数据类型和对象会映射到特定的 PostgreSQL 数据类型和对象。此流程支持可用 Oracle 数据库对象的一个非常特定的子集。
确定性代码转换支持以下 Oracle 数据库对象:
支持的 Oracle 架构元素
- 限制条件
- 索引(仅限在与其表相同的架构中创建的索引)
- 物化视图
- 对象类型(部分支持)
- 序列
- 同义词
- 表
- 视图
支持的 Oracle 代码元素
- 触发器(仅限表级)
- 软件包
- 函数
- 存储过程
交互式 SQL 编辑器
借助交互式 SQL 编辑器,您可以直接在 Database Migration Service 中修改转换后的 PostgreSQL 语法。您可以使用它来解决转换问题或调整架构,以更好地满足您的需求。某些对象无法在内置编辑器中修改。
可修改的 Oracle 对象
转换源数据库代码和架构后,您可以使用交互式编辑器修改为某些类型的对象生成的 SQL。编辑器支持以下 Oracle 对象:
- 表触发器(需要权限)
- 物化视图
- 软件包
- 函数、存储过程
- 同义词
- 视图
- 限制条件
- 索引
- 序列
此外,某些对象虽然已转换,但无法直接在 Database Migration Service 中进行修改。如需修改此类对象,您需要在 应用转换后的架构和代码后,直接在目标数据库上执行更新。
不支持修改的对象:
- 用户定义的对象类型
- 表
- 架构
使用 Gemini 加快代码和架构转换
Database Migration Service 将 Gemini for Google Cloud 集成到转换工作区中,可帮助您在以下方面加快和改进转换流程:
通过 Gemini 赋能的自动转换功能增强确定性转换结果,利用 AI 的强大功能显著减少 PostgreSQL 代码中所需的手动调整次数。
利用 Gemini 赋能的质量评估,确保转换后的代码质量和功能等效性。这些评估会分析转换后的代码,并就其与源代码相比的正确性和功能提供反馈。
通过转换助理提供代码可解释性功能:一组专用提示,可帮助您更好地了解转换逻辑、针对转换问题提出修复建议或优化转换后的代码。
借助 Gemini 代码转换建议,加快修复转换问题:Gemini 模型可以在您修复转换问题时进行学习,并针对工作区中的其他故障对象提出更改建议。
如需详细了解由 Gemini 赋能的转换,请参阅以下页面:
转化映射文件
您可以使用转换映射文件自定义转换逻辑。转换映射文件是一个文本文件,其中包含有关如何将 Oracle 对象转换为 PostgreSQL 对象的精确说明(称为转换指令)。
支持的转换指令
Database Migration Service 支持以下转换映射文件的转换指令:
EXPORT_SCHEMA
EXPORT_SCHEMA 是所有转化映射文件的必需指令。Database Migration Service 需要此指令,以确保将源架构转换为正确的目标架构。请确保您的转化映射文件包含以下行:
EXPORT_SCHEMA 1
SCHEMA
Database Migration Service 必须能够确定哪个架构包含应使用转换指令修改的对象。SCHEMA 指令会使文件中提供的所有其他自定义指令应用于此特定架构中的对象。
- 使用此指令时,数据库中包含的其他架构也会进行转换,但其对象不会进行任何修改。
- 如果您在转换映射文件中添加此指令,则所有自定义设置都仅应用于此特定架构中包含的对象。
- 如果您跳过此指令,则必须提供完全限定的对象名称,其中包含由其他转换指令修改的对象的架构名称。
例如,您需要使用
"SCHEMA_NAME.SOURCE_TABLE_NAME",而不是将SOURCE_TABLE_NAME用于REPLACE_TABLES指令。 - 如需自定义不同架构中的对象,请尝试以下操作:
- 为其他架构创建单独的转换映射文件,并将其上传到转换工作区。
- 对于与您提供给
SCHEMA指令的架构不同的架构中的对象,请使用包含架构名称的完全限定对象名称。
请使用以下格式:
SCHEMA SCHEMA_NAME
其中,SCHEMA_NAME 是源数据库中架构的名称。
CASE_HANDLING
默认情况下,Database Migration Service 会将所有对象名称转换为小写。
您可以使用 CASE_HANDLING 指令修改此行为。
- 此指令不受
SCHEMA指令的影响。 它在全球范围内有效,并会影响转换工作区中的所有对象。 RENAME_*、MOVE_*和REPLACE_*指令优先于CASE_HANDLING指令,并且无论CASE_HANDLING属性如何,都会精确重命名对象。- 如果此指令存在于多个配置文件中且值冲突,Database Migration Service 会在架构导入期间引发错误。
请使用以下格式:
CASE_HANDLING OPTION
其中 OPTION 可以是以下任一项:
UPPERCASE:将所有对象名称转换为大写。LOWERCASE:将所有对象名称转换为小写(默认行为)。PRESERVE_ORIGINAL:保留源架构中的原始大小写。如果您的应用使用区分大小写的标识符,此功能会非常有用。
示例:
CASE_HANDLING PRESERVE_ORIGINAL
GENERATE_MISSING_PK
没有主键的表无法保证一致的复制。 Database Migration Service 仅迁移具有主键的表。 默认情况下,当您 转换源代码和架构时,Database Migration Service 转换工作区会自动在目标表中创建任何缺失的主键。
您可以使用 GENERATE_MISSING_PK 指令控制自动主键生成。如需停用自动密钥生成功能,请将此指令设置为 0。
示例:
GENERATE_MISSING_PK 0
此指令会影响特定转换工作区中的所有对象。无法仅针对特定表停用自动主键生成功能。
Database Migration Service 只能迁移在其转换后的 PostgreSQL 版本中具有主键约束条件的表。如果您停用自动主键生成功能,则需要在应用转换后的架构后,在目标数据库中转换后的表中手动创建主键或唯一性约束条件。展开以下部分,查看 SQL 命令示例。
使用现有列创建主键
您的表可能已经具有基于列或列组合的逻辑主键。例如,可能存在配置了唯一性约束条件或索引的列。使用这些列为源数据库中的表生成新的主键。例如:
ALTER TABLE TABLE_NAME ADD PRIMARY KEY (COLUMN_NAME);
使用所有列创建主键
如果您没有可作为主键的预先存在的限制条件,请使用表的所有列创建主键。请确保您未超出 PostgreSQL 集群允许的主键长度上限。例如:
ALTER TABLE TABLE_NAME ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);
创建此类复合主键时,您需要明确列出要使用的所有列名称。无法使用语句来检索所有列名称以实现此目的。
使用 ROWID 伪列创建唯一性约束条件
Oracle 数据库使用
ROWID 伪列来存储表中每一行的位置。如需迁移没有主键的 Oracle 表,您可以在目标 PostgreSQL 数据库中添加 ROWID 列。Database Migration Service 会使用源 Oracle ROWID 伪列中的相应数值填充该列。
如需添加该列并将其设置为主键,请运行以下命令:
ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL; CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid; ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('TABLE_NAME_rowid_seq'); ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid);
重命名对象 (RENAME_*)
您可以在转换期间重命名不同的数据库对象。 Database Migration Service 会自动更新所有代码引用(在视图、存储过程、函数等中),以使用新名称。
常规语法
RENAME_OBJECT_TYPE SOURCE_NAME1:DESTINATION_NAME1 SOURCE_NAME2:DESTINATION_NAME2 ...
重要注意事项
-
RENAME_*指令对目标对象名称区分大小写,并且优先于CASE_HANDLING指令。例如,如果您同时使用这两个指令:SCHEMA MySchema CASE_HANDLING PRESERVE_ORIGINAL # Destination objects are renamed exactly # to 'SoMe_tAbLe' and 'RenamedView', respecting the case # despite the CASE_HANDLING directive RENAME_TABLES some_table:SoMe_tAbLe RENAME_VIEWS MyView:RenamedView
-
对于
SOURCE_NAME,请始终引用原始对象名称,即使您使用其他指令(例如MOVE_*)也是如此。例如,如果您想重命名某个视图对象并将其移至新架构,请在两个指令中都引用原始视图名称:RENAME_VIEWS MyView:MyRenamedView MOVE_VIEWS MyView:MyOtherSchema
RENAME_TABLES指令会替换单个文件中的REPLACE_TABLES指令。 如果您想同时重命名和移动表,我们建议您改用MOVE_*指令。-
SOURCE_NAME变量的完整格式取决于您是否还使用了SCHEMA指令:- 使用
SCHEMA指令:使用非限定名称,例如MyTable。 - 不使用
SCHEMA指令:使用完全限定名称,例如MySchema.MyTable。
- 使用
支持的 RENAME_* 指令
RENAME_SCHEMA:重命名架构。
单个配置文件只能包含一个RENAME_SCHEMA指令。如果提供了SCHEMA指令,RENAME_SCHEMA只能重命名该特定架构。RENAME_TABLES:重命名表。替换同一文件中的REPLACE_TABLES。RENAME_COLUMNS:重命名表中的列。 替换同一文件中的REPLACE_COLS指令。 请使用以下格式:RENAME_COLUMNS TABLE1.SRC_COL:DEST_COL TABLE2.SRC_COL:DEST_COL
如果您使用
SCHEMA指令,请使用非限定表名称。如果您不使用SCHEMA指令,请添加完全限定的表名称,例如 SCHEMA.TABLE1。RENAME_VIEWSRENAME_MATERIALIZED_VIEWSRENAME_SEQUENCESRENAME_FUNCTIONSRENAME_STORED_PROCEDURESRENAME_TRIGGERS-
RENAME_PACKAGES:Database Migration Service 会将 Oracle 软件包转换为 PostgreSQL 架构。如果您的架构包含名称相同的软件包,则 PostgreSQL 代码在尝试创建两个同名架构时可能会遇到名称冲突。 您可以使用此指令来避免此类冲突。例如,如果您有
SALES.REPORTING_PKG和HR.REPORTING_PKG等软件包,则可以将其重命名为不同的名称:RENAME_PACKAGES SALES.UTILS:SALES_UTILS RENAME_PACKAGES HR.UTILS:HR_UTILS
RENAME_USER_DEFINED_TYPES可用别名:
RENAME_UDTS。
移动对象 (MOVE_*)
您可以将对象移至目标数据库中的不同架构。 这对于在迁移期间重组数据库结构非常有用。Database Migration Service 会自动更新视图、存储过程、函数等中的所有代码引用。
常规语法
MOVE_OBJECT_TYPE SOURCE_NAME1:DESTINATION_SCHEMA1 SOURCE_NAME2:DESTINATION_SCHEMA2 ...
重要注意事项
-
对于
SOURCE_NAME,请始终引用原始对象名称,即使您使用其他指令(例如RENAME_*)也是如此。例如,如果您想重命名某个视图对象并将其移至新架构,请在两个指令中都引用原始视图名称:RENAME_VIEWS MyView:MyRenamedView MOVE_VIEWS MyView:MyOtherSchema
- 该指令只需要
DESTINATION_SCHEMA名称,而不需要完整的对象名称。 -
SOURCE_NAME变量的完整格式取决于您是否还使用了SCHEMA指令:- 使用
SCHEMA指令:使用非限定名称,例如MyTable。 - 不使用
SCHEMA指令:使用完全限定名称,例如MySchema.MyTable。
- 使用
支持的 MOVE_* 指令
MOVE_TABLES:将表移至其他架构。 对于单个配置文件中的架构更改,此字段优先于REPLACE_TABLES。MOVE_VIEWSMOVE_MATERIALIZED_VIEWSMOVE_SEQUENCESMOVE_FUNCTIONSMOVE_STORED_PROCEDURESMOVE_USER_DEFINED_TYPES可用别名:
MOVE_UDTS。
示例:重新整理架构
SCHEMA LegacyApp # Moves the 'LegacyApp.Users' and 'LegacyApp.Orders' tables # to the 'data' schema. MOVE_TABLES Users:data Orders:data # Moves the 'LegacyApp.CreateUser' and 'LegacyApp.ProcessOrder' # stored procedures to the 'api' schema MOVE_STORED_PROCEDURES CreateUser:api ProcessOrder:api # Moves the 'LegacyApp.SalesSummary' views to the 'reporting' schema MOVE_VIEWS SalesSummary:reporting
DATA_TYPE
您可以使用此指令在 Oracle 和 PostgreSQL 语法之间显式映射任何受支持的数据类型。此指令需要一个以英文逗号分隔的映射列表。整个定义必须在一行中提供,但您可以在配置文件中添加多个 DATA_TYPE 指令。请使用以下格式:
DATA_TYPE ORACLE_DATA_TYPE1:PGSQL_DATA_TYPE1 DATA_TYPE ORACLE_DATA_TYPE2:PGSQL_DATA_TYPE2...
其中,ORACLE_DATA_TYPE 和 PGSQL_DATA_TYPE 是您在迁移中使用的相应 Oracle 和 PostgreSQL 版本支持的数据类型。如需了解支持的版本,请参阅 场景概览。
示例:
DATA_TYPE REAL:double precision,SMALLINT:integer
如需详细了解 Oracle 和 PostgreSQL 数据类型,请参阅:
- Oracle 文档中的 Oracle 数据类型。
- PostgreSQL 文档中的 PostgreSQL 数据类型。
MODIFY_TYPE
借助 MODIFY_TYPE 指令,您可以控制 Database Migration Service 将源表中的特定列转换为哪种数据类型。此指令需要一个以英文逗号分隔的映射列表。
整个定义必须在一行中提供,但您可以在配置文件中添加多个 MODIFY_TYPE 指令。请使用以下格式:
MODIFY_TYPE SOURCE_TABLE_NAME1:COLUMN_NAME:EXPECTED_END_RESULT_DATA_TYPE MODIFY_TYPE SOURCE_TABLE_NAME2:COLUMN_NAME:EXPECTED_END_RESULT_DATA_TYPE...
其中:
- SOURCE_TABLE_NAME 是包含要更改数据类型的列的表的名称。
- COLUMN_NAME 是您要为其自定义转化映射的列的名称。
- EXPECTED_END_RESULT_DATA_TYPE 是您希望转换后的列使用的 PostgreSQL 数据类型。
示例:
MODIFY_TYPE events:dates_and_times:DATETIME,users:pseudonym:TEXT
PG_INTEGER_TYPE
默认情况下,Database Migration Service 会将 NUMBER(p,s) 类型转换为 PostgreSQL DECIMAL(p,s) 类型。
您可以使用 PG_INTEGER_TYPE 指令修改此行为。将其值设置为 1,并强制将所有具有精度和标度 (NUMBER(p,s)) 类型的 NUMBER 根据精度位数转换为 PostgreSQL smallint、integer 或 bigint 类型。
在转化映射文件中添加以下设置:
PG_INTEGER_TYPE 1
PG_NUMERIC_TYPE
如果您想将所有具有精度和标度 (NUMBER(p,s)) 类型的 NUMBER 转换为 PostgreSQL real 或 float 类型(基于其精度位数),请将此指令设置为 1。
如果您将此指令设置为 0,则 NUMBER(p,s) 值会保留其确切的原始值,并使用内部 PostgreSQL 数据类型。
在转化映射文件中添加以下设置:
PG_NUMERIC_TYPE 1
DEFAULT_NUMERIC
不带精度的 NUMBER 的默认转换会根据您是否还使用
PG_INTEGER_TYPE 指令而发生变化:
- 如果您使用
PG_INTEGER指令,则没有精度的NUMBER会转换为DECIMAL值。 - 如果您不使用
PG_INTEGER指令,则不带精度的NUMBER会转换为BIGINT值。
您可以修改此行为,并使用 DEFAULT_NUMERIC 指令指定应为没有指定精度点的 NUMBER 类型使用哪种数据类型。请使用以下格式:
DEFAULT_NUMERIC POSTGRESQL_NUMERIC_DATA_TYPE
其中 POSTGRESQL_NUMERIC_DATA_TYPE 是以下项之一:integer、smallint、bigint。
示例:
DEFAULT_NUMERIC integer
REPLACE_COLS
您可以使用 REPLACE_COLS 指令重命名转换后的架构中的列。此指令需要一个以英文逗号分隔的映射列表。
请使用以下格式:
REPLACE_COLS SOURCE_TABLE_NAME1(SOURCE1_TABLE1_COLUMN_NAME1:DESTINATION_TABLE1_COLUMN_NAME1,SOURCE_TABLE1_COLUMN_NAME2:DESTINATION_TABLE1_COLUMN_NAME2),SOURCE_TABLE_NAME2(SOURCE_TABLE2_COLUMN_NAME1:DESTINATION_TABLE2_COLUMN_NAME1,SOURCE_TABLE2_COLUMN_NAME2:DESTINATION_TABLE2_COLUMN_NAME2)...
其中:
- SOURCE_TABLE_NAME 是包含要更改其名称的列的表的名称。如果您不使用 SCHEMA 指令,请务必使用完全限定的表名称:
SCHEMA_NAME.SOURCE_TABLE_NAME - SOURCE_COLUMN_NAME 是来源中要更改其名称的列的名称。
- DESTINATION_COLUMN_NAME 是您要在转换后的架构中使用的列的新名称。
示例:
REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname)
REPLACE_TABLES
您可以使用 REPLACE_TABLES 指令重命名表或将其移至新架构。此指令需要一个以空格分隔的映射列表。如需详细了解每个用例的语法,请展开以下部分。
如果您不使用 SCHEMA 指令,请确保为源变量和目标变量使用带引号的完全限定表名称:
"SCHEMA_NAME.SOURCE_TABLE_NAME""SCHEMA_NAME.DESTINATION_TABLE_NAME"
重命名表
如需在转换后的架构中重命名表,请使用以下格式:
REPLACE_TABLES SOURCE_TABLE_NAME1:DESTINATION_TABLE_NAME1 SOURCE_TABLE_NAME2:DESTINATION_TABLE_NAME2
其中:
- SOURCE_TABLE_NAME 是您要在转换后的架构中重命名的源表的名称。
- DESTINATION_TABLE_NAME 是您要在转换后的架构中使用的表的新名称。
示例:
REPLACE_TABLES "events:login_events" "users:platform_users"
在架构之间移动表
您可以使用此指令在架构之间移动表,方法是将架构前缀添加到新表名称中。无论您如何对整个转换文件使用 SCHEMA 指令,都可以使用此机制。例如:
REPLACE_TABLES "events:NEW_SCHEMA_NAME.login_events"
用于自定义数据类型的别名
当您使用转换指令修改 Database Migration Service 转换不同数据类型的方式时(例如,使用
DATA_TYPE、
MODIFY_TYPE 或
PG_NUMERIC_TYPE 指令),您可以使用别名,而不是源 SQL 数据类型。
展开以下部分,查看 Database Migration Service 支持的数据类型别名列表。
数据类型别名
| 别名 | 已转换为 PostgreSQL 类型 |
|---|---|
bigint,int8 |
BIGINT |
bool、boolean |
BOOLEAN |
bytea |
BYTEA |
char、character |
CHAR |
character varying、varchar |
VARCHAR |
date |
DATE |
decimal、numeric |
DECIMAL |
double precision、float8 |
DOUBLE PRECISION |
real,float4 |
REAL |
int、integer、int4 |
INTEGER |
int2 |
SMALLINT |
interval |
INTERVAL |
json |
JSON |
smallint |
SMALLINT |
text |
TEXT |
time |
TIME |
timestamp |
TIMESTAMP |
timestamptz |
TIMESTAMPTZ |
timetz |
TIMETZ |
uuid |
UUID |
XML |
XML |
转化映射文件示例
请参阅以下示例转换映射文件,该文件使用了一些受支持的架构转换指令:
EXPORT_SCHEMA 1 SCHEMA root # Preserve original casing for all objects CASE_HANDLING PRESERVE_ORIGINAL # Data type conversions PG_NUMERIC_TYPE 0 PG_INTEGER_TYPE 1 DEFAULT_NUMERIC integer DATA_TYPE NUMBER(4\,0):integer MODIFY_TYPE events:dates_and_times:TIMESTAMP # Renaming objects using the RENAME_* directives # These allow case-sensitive destination names RENAME_TABLES events:LoginEvents users:PlatformUsers RENAME_COLUMNS events.dates_and_times:EventDates users.pseudonym:Nickname RENAME_VIEWS InternalReport:FinInternalReport # Moving objects to new schemas using the MOVE_* directives MOVE_TABLES audit_log:archive MOVE_VIEWS InternalReport:reporting
使用此文件的结果如下:
EXPORT_SCHEMA 1是必需指令。SCHEMA root会导致其他指令应用于root架构中的对象,除非使用完全限定名称。CASE_HANDLING PRESERVE_ORIGINAL可确保源root架构中的所有对象名称在目标中保留其原始大小写(除非被RENAME_*指令覆盖)。PG_INTEGER_TYPE 1会使 Database Migration Service 将root架构中的表中找到的所有 Oracle 数值数据类型转换为 PostgreSQL 专用类型,而不是 ANSI 可移植数值类型。DEFAULT_NUMERIC integer会导致 Database Migration Service 将没有指定精度点的NUMBER值转换为 PostgreSQLINTEGER类型。DATA_TYPE NUMBER(4\,0):integer会导致 Database Migration Service 将特定NUMBER(4,0)值转换为 PostgreSQLINTEGER。MODIFY_TYPE events:dates_and_times:TIMESTAMP指令会导致 Database Migration Service 将events源表中的dates_and_times列中的数据专门转换为 PostgreSQLTIMESTAMP类型。RENAME_TABLES events:LoginEvents users:PlatformUsers重命名表,保留指定的大小写:events表已重命名为LoginEvents。users表已重命名为PlatformUsers。
RENAME_COLUMNS events.dates_and_times:EventDates user.pseudonym:Nickname会重命名列,并在目标位置保留指定的大小写:- 在
LoginEvents表(原始名称为events)中,dates_and_times列已重命名为EventDates。 - 在
PlatformUsers(原始名称为users)中,pseudonym列已重命名为Nickname。
- 在
RENAME_VIEWS InternalReport:FinInternalReport会将视图InternalReport重命名为FinInternalReport。MOVE_TABLES audit_log:archive会将audit_log表从root架构移至archive架构。MOVE_VIEWS InternalReport:reporting会将InternalReport视图移至reporting架构。 由于RENAME_VIEWS指令,此视图也会重命名为FinInternalReport。Database Migration Service 会处理依赖项:先重命名对象,然后移动对象。
旧版转换工作区
旧版转换工作区是一种较旧、功能更有限的转换工作区。旧版转换工作区不支持 Gemini 增强型转换功能或交互式 SQL 编辑器。您只能使用这些工作区通过 Ora2Pg 迁移工具转换源架构。
我们不建议您使用旧版转换工作区进行迁移。如果您的场景需要使用旧版转换工作区,请参阅 使用旧版转换工作区。
后续步骤
如需了解如何使用转换工作区,请参阅: