PARTITION | 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_Q4SH.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操作で、パーティション・ルールにSH.SALESと一致する表部分がないため、パーティションPART_S1が含められます。したがって、パーティション・ルールは評価されません。
TABLE
  sh.sales;
  PARTITION sh.products.p_s1;