映射的范围
此页上的脚本内容仅用于导航目的,不会以任何方式变更该内容。
TABLE 和 MAP 语句中指定的对象具有 MAPPED 范围。除非应用覆盖规则,否则这些语句中的提取和复制指令将同时应用于指定对象上的数据 (DML) 和 DDL。
对于 TABLE 和 MAP 语句中的对象,支持下表中列出的 DDL 操作。
| 操作 | 在这些对象中的任何一个 (1) |
|---|---|
|
|
|
|
ANALYZE |
|
脚注 1 TABLE 和 MAP 不支持可在受这些操作影响的对象名称中使用的某些特殊字符。UNMAPPED 和 OTHER 的作用域支持具有不受支持的特殊字符的对象。
脚注 2
适用于 COMMENT ON TABLE、COMMENT ON COLUMN
脚注 3
包括 AS SELECT
脚注 4
表名必须用方案名加以限定。
对于 Extract,MAPPED 范围根据 TABLE 语句中的说明标记用于 DDL 捕获的对象。对于 Replicat,MAPPED 范围将 DDL 标记为复制,并将其映射到 MAP 语句的 TARGET 子句中的方案和名称指定的对象。要执行此映射,Replicat 会发出 ALTER SESSION 以将 Replicat 会话的方案设置为 TARGET 子句中指定的方案。如果 DDL 包含不合格的对象,则为目标分配的方案取决于 Understanding DDL Scopes 中描述的情况。
假设有以下 TABLE 和 MAP 语句:
提取(来源)
TABLE hr.employees;
TABLE hr.emp*;
复制(目标)
MAP hr.employees, TARGET hr2.employees2;
MAP hr.emp*, TARGET hrEMPLOYEES.bak_*;
还假定以下各项的源 DDL 语句:
ALTER TABLE hr.employees ADD notes varchar2(100);
在本示例中,由于源表 fin.expen 位于 MAP 语句中,并且具有映射到其他方案和表名的 TARGET 子句,因此目标 DDL 语句变为:
ALTER TABLE hr2.employees2 ADD notes varchar2(100);
同样,示例中的第二组 TABLE 和 MAP 语句也可以使用以下源和目标 DDL 语句:
源:
CREATE TABLE hr.tabPayables ... ;
目标:
CREATE TABLE hrBackup.bak_tabPayables ...;
当对象具有 MAPPED 范围时,您可以从 DDL 配置参数中省略其名称,除非要进一步细化其 DDL 支持。如果需要更改 TABLE 和 MAP 语句中的对象名称,这些更改将自动应用于这些对象的 DDL。
如果在 TABLE 语句中包含对象,但未包含在 MAP 语句中,则该对象的 DDL 在源上的作用域中为 MAPPED,而在目标上的作用域中为 UNMAPPED。