3.3 インポート操作中のフィルタ処理

Oracle Data Pumpインポートでは、データとメタデータのフィルタ処理機能を使用して、インポートする情報のタイプを効果的に制限できます。

3.3.1 Oracle Data Pumpインポートのデータ・フィルタ

インポートする表の行に制限を指定するには、QUERYパラメータおよびSAMPLEパラメータを通じてOracle Data Pumpのデータ固有のフィルタ処理を使用します。

Oracle Data Pumpは、メタデータのフィルタ処理のためにデータのフィルタ処理を間接的に実装することもできます。この処理では、表オブジェクトおよび関連付けられた行データを含めたり、除外したりできます。

各データ・フィルタは、表ごとにジョブ内で1回指定できます。同じ名前を使用する異なるフィルタが特定の表とジョブ全体の両方に適用された場合は、特定の表に対して提供されたフィルタ・パラメータが優先されます。

3.3.2 Oracle Data Pumpインポートのメタデータ・フィルタ

インポート操作にオブジェクトを含めるまたは除外するには、Oracle Data Pumpのメタデータ・フィルタを使用します。

メタデータのフィルタ処理は、EXCLUDEおよびINCLUDEパラメータによって実装されます。メタデータ・フィルタにより、Oracle Data Pump操作に含めるか除外する必要がある一連のオブジェクトを特定します。たとえば、パッケージ仕様またはパッケージ本体を含めない全体インポートを要求できます。Oracle Data Pump Importで提供されるメタデータ・フィルタ処理機能は、オリジナルのインポート・ユーティリティに比べて大幅に拡張されています。

フィルタを正しく使用するためと、必要な結果を得るために、特定されたオブジェクトの依存オブジェクトは特定されたオブジェクトとともに処理されるということを覚えておいてください。

たとえば、パッケージを操作に含めるようにフィルタで指定すると、そのパッケージに対する権限も含まれます。同様に、フィルタで表を除外すると、その表に対する索引、制約、権限およびトリガーも除外されます。

Oracle Database 21c以降、Oracle Data Pumpでは、同じコマンド内でINCLUDEEXCLUDEの両方のパラメータを設定できます。コマンドに両方のパラメータを含めると、Oracle Data Pumpにより、INCLUDEパラメータが最初に処理され、そのパラメータで識別されるすべてのオブジェクトが含まれます。その後で、除外パラメータが処理されます。具体的には、パラメータEXCLUDE_PATH_EXPREXCLUDE_PATH_LISTおよびEXCLUDE_TABLEが最後に処理されます。EXCLUDEパラメータで指定されたオブジェクトは、含めるオブジェクトのリストからコマンドの実行時に削除されます。

1つのオブジェクト型に対して複数のフィルタが指定されている場合は、それらのフィルタに対して暗黙的なAND処理が適用されます。つまり、ジョブに関連するオブジェクトは、オブジェクト型に適用されるすべてのフィルタで処理される必要があります。

1つのジョブ内には、同じフィルタ名を複数回指定できます。

有効なオブジェクト・タイプのリストを表示するには、DATABASE_EXPORT_OBJECTS (全体モードの場合)、SCHEMA_EXPORT_OBJECTS (スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS (表モードの場合)、TABLESPACE_EXPORT_OBJECTS (表領域モードの場合)、TRANSPORTABLE_EXPORT_OBJECTS (トランスポータブル表領域モードの場合)ビューを問い合せます。OBJECT_PATH列にリストされる値が有効なオブジェクト・タイプです。完全なオブジェクト・パス名は、インポート・モードでなくエクスポート・モードによって決定されます。

関連トピック