分割區 | PARTITIONEXCLUDE

有效對象

擷取、分配服務及 Replicat。僅限 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 參數包含在 Extract 端。使用 MAP/PARTITIONEXCLUDE 參數的 Replicat 端會排除分割區 P_Q4。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;