转换工作区

转换工作区可帮助您将源数据库中的架构和对象转换为与目标数据库兼容的 SQL 语法。本页面简要介绍了 Database Migration Service 转换工作区:

Oracle 迁移不支持某些数据类型。如需了解详情,请参阅 数据类型的已知限制。

源架构初始化选项

为了转换数据库架构,Database Migration Service 需要源数据库对象的初始快照。您可以通过以下两种方式提供此快照:

  • 直接数据库连接:Database Migration Service 通过连接配置文件直接连接到正在运行的源数据库,并通过网络连接检索架构。
  • Cloud Storage 中的架构文件:您可以使用 Google 提供的提取脚本在本地提取架构元数据,将生成的文件上传到 Cloud Storage 存储桶,并在不连接到源数据库的情况下准备工作区。

如需了解如何通过直接数据库连接或 Cloud Storage 中的架构文件创建转换工作区,请参阅创建转换工作区。

转换进度概览

转换工作区提供全面的概览信息,您可以在其中深入了解未解决或已解决的转换问题总数、Gemini 辅助增强功能以及转换流程的总体健康状况。

转换工作区屏幕,其中包含“转换概览”标签页,您可以在其中查看已转换对象的数量、转换问题和 Gemini 辅助转换增强功能。
图 1. 转换工作区概览界面,您可以在其中监控转换进度、查看问题并检查生成的 PostgreSQL 代码。(点击可放大)
转换工作区屏幕,其中包含“转换概览”标签页,您可以在其中查看已转换对象的数量、转换问题和 Gemini 辅助转换增强功能。

您可以使用此视图按类型、问题严重程度、需要采取行动或转换状态过滤架构中的对象。

转换工作区屏幕,显示如何按类型或状态过滤转换后的对象。
图 2. 按状态和对象类型过滤的已转换对象。(点击可放大)
转换工作区屏幕,显示如何按类型或状态过滤转换后的对象。

如需详细了解如何使用转换概览来检查转换结果,请参阅 使用转换工作区。

确定性代码和架构转换

创建转换工作区后,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_VIEWS
  • RENAME_MATERIALIZED_VIEWS
  • RENAME_SEQUENCES
  • RENAME_FUNCTIONS
  • RENAME_STORED_PROCEDURES
  • RENAME_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_VIEWS
  • MOVE_MATERIALIZED_VIEWS
  • MOVE_SEQUENCES
  • MOVE_FUNCTIONS
  • MOVE_STORED_PROCEDURES
  • MOVE_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 数据类型,请参阅:

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 值转换为 PostgreSQL INTEGER 类型。
  • DATA_TYPE NUMBER(4\,0):integer 会导致 Database Migration Service 将特定 NUMBER(4,0) 值转换为 PostgreSQL INTEGER。
  • MODIFY_TYPE events:dates_and_times:TIMESTAMP 指令会导致 Database Migration Service 将 events 源表中的 dates_and_times 列中的数据专门转换为 PostgreSQL TIMESTAMP 类型。
  • 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 迁移工具转换源架构。

我们不建议您使用旧版转换工作区进行迁移。如果您的场景需要使用旧版转换工作区,请参阅 使用旧版转换工作区。

后续步骤

如需了解如何使用转换工作区,请参阅: