分区 | PARTITIONEXCLUDE

有效对象

提取、分发服务和复制。仅限 Oracle。

说明

这些参数与 TABLE 和 TABLEEXCLUDE 参数一起使用。仅当包括表时,才会评估分区规则。

为了保持一致性,这些参数的行为非常类似于它们的 TABLE 和 TABLEEXCLUDE 等效参数。

如果任何 PARTITION 或 PARTITIONEXCLUDE 规则的 [container.]schema.table 部分与表匹配,则仅执行其他分区过滤。

分区过滤规则按以下顺序进行计算:

如果在 Replicat 中使用 PARTITION 或 EXCLUDEPARTITION,则 PARTITION 参数必须用于 Extract TABLE 参数,才能将分区元数据写入线索文件,以便 Replicat 可以处理它。

注意:如果 PARTITION 或 PARTITIONEXCLUDE 参数的部件数无效,则会出现错误。

语法

PARTITION [<container>.]<schema.table.partition>;
PARTITIONEXCLUDE [<container>.]<schema.table.partition>;

对于非 CDB,必须指定 3 个部分 (schema.table.partition)。

对于 CDB,必须指定 4 个部件 (pdb.schema.table.partition) 或 3 个部件(具有前面的 SOURCECATALOG 参数)。

示例

在下例中,对表 SH.SALES 的分区 P_Q4 执行 DML 操作,将包括该分区,因为表和分区规则都包括该分区。

TABLE
  sh.sales;
  PARTITION sh.sales*.p_q4;

在下例中,对表 SH.SALES 的分区 P_Q4 执行 DML 操作,所有分区都使用 TABLE/PARTITION 参数包括在提取端。分区 P_Q4 在 Replicat 端使用 MAP/PARTITIONEXCLUDE 参数排除。对分区的所有其他更改都由 Replicat 应用。

TABLE sh.sales;
  PARTITION sh.sales.p_q*;
MAP sh.sales, TARGET sh.sales;
  PARTITION sh.sales.p_q4;

在以下对表 SH.SALES 的分区 P_Q4 执行 DML 操作的示例中,将排除分区 P_Q4,因为它仅对 SH.SALES 的分区 P_Q3 有效:

TABLE
   sh.sales;PARTITION
   sh.sales*.p_q3;

以下对 SH.SALES 的分区 P_Q3 执行 DML 操作的示例显示了如何指定多个分区规则。将包括分区,因为它与分区包含规则之一匹配。

TABLE
          sh.sales;PARTITION
          sh.sales.p_q3;PARTITION
          sh.sales.p_q4;

在以下对表 SH.SALES_HISTORY 的分区 P_Q4 执行 DML 操作的示例中,由于显式分区排除规则,将排除分区 P_Q4。

TABLE
  sh.sales_history
  PARTITION sh.sales*.p_q4;
  PARTITIONEXCLUDE sh.sales_history.p_q*;

在以下对表 SH.PRODUCTS 的分区 P_S1 执行 DML 操作的示例中,由于未引用表 SH.PRODUCTS,因此未捕获分区 PART_S1 和完整表 SH.PRODUCTS。

TABLE
  sh.sales;PARTITION
  sh.products.p_s1;

在下例中,对表 SH.SALES 的分区 P_Q4 执行 DML 操作,将包括分区 PART_S1,因为没有分区规则的表部分与 SH.SALES 匹配。因此,不会评估任何分区规则。

TABLE
  sh.sales;
  PARTITION sh.products.p_s1;