パーティション| PARTITIONEXCLUDE
有効な対象
Extract、分散サービスおよびReplicat。Oracle専用。
摘要
これらのパラメータは、TABLEおよびTABLEEXCLUDEパラメータと連携して機能します。表が含まれている場合のみ、パーティション・ルールが評価されます。
一貫性を保つために、これらのパラメータは対応するTABLEおよびTABLEEXCLUDEとほぼ同じように動作します。
-
ワイルドカードは、すべての名前部分で使用できます。
-
GLOBALSパラメータEXCLUDEWILDCARDOBJECTSONLYがサポートされています。 -
コンテナ部分は、3つの部分からなる名前のCDB環境でのみ有効です。
-
SOURCECATALOGパラメータは、カタログ部分が指定されていない場合に有効になります。 -
SOURCECATALOGを指定しない場合は、コンテナ部分を指定する必要があります。 -
コンテナ部分が指定されている場合は、
SOURCECATALOGより優先されます。
PARTITIONまたはPARTITIONEXCLUDEルールの[container.]schema.table部分が表と一致する場合にのみ、追加のパーティション・フィルタリングが実行されます。
パーティション・フィルタリング・ルールは、次の順序で評価されます。
-
パーティション名がどの
PARTITIONパラメータとも一致しない場合は、除外されます。 -
PARTITIONパラメータに含まれる場合、ワイルドカード以外の包含ルールに含まれ、EXCLUDEWILDCARDOBJECTSONLYが指定されていないかぎり、除外ルールが評価されます。
ReplicatでPARTITIONまたはEXCLUDEPARTITIONを使用する場合は、ExtractのTABLEパラメータでパーティション・メタデータをトレイル・ファイルに書き込むためにPARTITIONパラメータを使用して、Replicatで処理できるようにする必要があります。
ノート: PARTITIONまたはPARTITIONEXCLUDEパラメータに無効な数のパートがある場合は、エラーが発生します。
構文
PARTITION [<container>.]<schema.table.partition>;
PARTITIONEXCLUDE [<container>.]<schema.table.partition>;
非CDBの場合は、3つの部分(schema.table.partition)を指定する必要があります。
CDBでは、4つの部分(pdb.schema.table.partition)または前のSOURCECATALOGパラメータを持つ3つの部分を指定する必要があります。
例
次の例では、表SH.SALESのパーティションP_Q4に対するDML操作で、表とパーティション・ルールの両方に含まれているため、パーティションが含められています。
TABLE
sh.sales;
PARTITION sh.sales*.p_q4;
次の例では、表SH.SALESのパーティションP_Q4に対するDML操作で、TABLE/PARTITIONパラメータを使用して、すべてのパーティションがExtract側に含められます。パーティションP_Q4は、MAP/PARTITIONEXCLUDEパラメータを使用してReplicat側で除外されます。パーティションに対する他のすべての変更は、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;