提取的 MAP

有效对象

提取

说明

还可以使用提取参数文件中的 MAP 更改 Oracle GoldenGate 为表存储的事务处理的名称。

例如,请考虑捕获表 scott.emp。对于第一个用例,您可以捕获它以将所有更改应用于具有相同结构的名为 scott.emp 的其他表,但您还希望捕获具有不同列集的 scott.emp 并将其复制到名为 scott.emp_old 的表。要执行此操作,您需要一个类似于以下内容的提取参数文件:

TABLE scott.emp;
MAP scott.emp,
cols(emp_no, employee_name),
target scott.emp_old;

在 "Replicat"(复制)中,可以执行以下操作:

MAP *.*, target *.*;

从 scott.emp 更改将进入 scott.emp,scott.emp_old 的线索数据将进入 scott.emp_old。

当提取以经典捕获模式运行时,并且您需要使用此参数的 ALTID 组件将对象 ID 映射到对象名称时,使用 MAP 参数进行提取。如果提取从数据库生成的 Oracle 事务处理日志中捕获,则 ALTID 指定正确的对象 ID。该日志不是提取所连接到的数据库。不允许提取直接连接到生产(来源)数据库以捕获生产事务处理时,需要此配置。

当 Extract 无法直接连接到源数据库时,它会连接到实时备用数据库或其他传真数据库,但会读取从源数据库发送的事务处理日志。通过查询备用数据库的目录,Extract 可以获取将事务处理数据扩展到有效 SQL 语句所需的元数据,但不能使用此查询中的对象 ID。表的本地对象 ID 与源数据库(因此在事务处理日志中)中该表的对象 ID 不同。必须使用带有 ALTID 的 MAP 语句将每个表名手动映射到源对象 ID。

将 MAP 与 ALTID 一起使用

默认值

无

语法

MAP *[<container>.]<schema>.*<table>, ALTID <object_ID> [, <object_ID>]

[<container>.]<schema.table>

源表的全限定名称。

<object_ID>

表中存在于生产(源)数据库中的对象 ID。

如果对表进行了分区,则可以列出要复制的分区的对象 ID,每个分区用逗号分隔。

示例

示例 1

此示例映射未分区的表或仅映射分区表的一个分区。

MAP QASOURCE.T2, ALTID 75740;

示例 2

此示例映射已分区表的分区。

MAP QASOURCE.T_P1, ALTID 75257,75258;