デフォルト: デフォルト値は設定されていません。
用途
構文および説明
QUERY=[[schema_name.]table_name:]query_clause
通常、query_clause
では、ファイングレイン行選択のためのSQL WHERE
句を使用しますが、任意のSQL句を使用できます。たとえば、ORDER BY
句を使用すると、ヒープ構成表から索引構成表への移行を高速化できます。スキーマおよび表名を指定しなかった場合は、ソース・ダンプ・ファイル・セットまたはデータベース内のすべての表に問合せが適用されます(この場合、問合せは、これらのすべての表に対して有効である必要があります)。表固有の問合せは、すべての表に適用される問合せより優先されます。
特定の表に問合せを適用する場合は、表名と問合せ句をコロン(:)で区切る必要があります。表固有の問合せは複数指定できますが、1つの表に指定できるのは1つの問合せのみです。
QUERY
パラメータと一緒にNETWORK_LINK
パラメータを指定する場合、リモート(ソース)ノード上にあるquery_clause
で指定されるすべてのオブジェクトは、NETWORK_LINK
値で明示的に修飾する必要があります。それ以外の場合、データ・ポンプではオブジェクトがローカル(ターゲット)ノード上に存在することを前提とし、存在しない場合はエラーが返され、リモート(ソース)システムからの表のインポートは失敗します。
たとえば、NETWORK_LINK=dblink1
と指定した場合、QUERY
パラメータのquery_clause
は、次の例に示すようにそのリンクを指定する必要があります。
QUERY=(hr.employees:"WHERE last_name IN(SELECT last_name FROM hr.employees@dblink1)")
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。詳細は、「データ・ポンプ・コマンドラインでの引用符の使用」を参照してください。
QUERY
パラメータを使用すると、外部表による方法(ダイレクト・パスによる方法ではなく)でデータベース・アクセスが実行されます。
表固有の問合せで自分のスキーマ以外のスキーマを指定するには、その特定の表に対するアクセス権限が付与されている必要があります。
制限事項
QUERY
パラメータは次のパラメータとは併用できません。
CONTENT=METADATA_ONLY
SQLFILE
TRANSPORT_DATAFILES
表にQUERY
パラメータが指定されている場合、データ・ポンプは外部表を使用してターゲット表をロードします。外部表は、SQLのINSERT
文をSELECT
句とともに使用します。QUERY
パラメータの値は、INSERT
文のSELECT
部分にあるWHERE
句に含まれています。QUERY
パラメータにロードする表と一致する名前の列がある他の表への参照が含まれていて、これらの列が問合せで使用される場合は、表別名を使用して、ロードする表内の列と、SELECT
文内の同じ名前を持つ列を区別する必要があります。ロードする表に対してデータ・ポンプで使用される表別名は、KU$
です。
たとえば、sh.customers
表にある顧客のクレジットの上限に基づいてsh.sales
表のサブセットをインポートするとします。次の例では、KU$
を使用して、sh.sales
をロードするためにQUERY
パラメータ内のcust_id
フィールドを修飾します。この結果、データ・ポンプによって、クレジットの上限が$10,000を超える顧客の行のみがインポートされます。
QUERY='sales:"WHERE EXISTS (SELECT cust_id FROM customers c WHERE cust_credit_limit > 10000 AND ku$.cust_id = c.cust_id)"'
表別名としてKU$
を使用しないと、すべての行がロードされます。
QUERY='sales:"WHERE EXISTS (SELECT cust_id FROM customers c WHERE cust_credit_limit > 10000 AND cust_id = c.cust_id)"'
QUERY
に使用できる文字列の最大長は、引用符を含めて4000バイトです。つまり、許容される実際の最大長は3998バイトです。
例
次に、QUERY
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。「FULL」を参照してください。QUERY
値には引用符を使用するため、パラメータ・ファイルを使用することをお薦めします。
次の内容のパラメータ・ファイルquery_imp.par
を作成したとします。
QUERY=departments:"WHERE department_id < 120"
次のコマンドを入力します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp PARFILE=query_imp.par NOLOGFILE=YES
expfull.dmp
内のすべての表はインポートされますが、departments
表については、QUERY
パラメータに指定した基準を満たすデータのみがインポートされます。