分割區 | PARTITIONEXCLUDE
有效對象
擷取、分配服務及 Replicat。僅限 Oracle。
說明
這些參數可與 TABLE 和 TABLEEXCLUDE 參數搭配使用。只有在包含表格時,才會評估分割區規則。
為了保持一致,這些參數的行為與它們的 TABLE 和 TABLEEXCLUDE 對等部分相同。
-
所有名稱部分都允許使用萬用字元。
-
支援
GLOBALS參數EXCLUDEWILDCARDOBJECTSONLY -
容器部分只在三個部分名稱的 CDB 環境中有效。
-
未指定目錄部分時,
SOURCECATALOG參數將會生效。 -
未指定
SOURCECATALOG時,必須指定容器部分。 -
如果指定容器部分,則其優先順序高於
SOURCECATALOG。
如果任何 PARTITION 或 PARTITIONEXCLUDE 規則的 [container.]schema.table 部分符合表格,則只會執行額外的分割區篩選。
分割區篩選規則的評估順序如下:
-
如果分割區名稱不符合任何
PARTITION參數,則會排除該參數。 -
如果包含在
PARTITION參數中,則會評估排除規則,除非其包含在非萬用字元包含規則中,且已指定EXCLUDEWILDCARDOBJECTSONLY。
如果在 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;