プライマリ・コンテンツに移動
Oracle® Databaseユーティリティ
12cリリース1 (12.1.0.2)
B71303-09
目次へ移動
目次
索引へ移動
索引

前
次

QUERY

デフォルト: none

このパラメータでは、表モード・エクスポートの実行時に、表のセットから行のサブセットを選択できます。問合せパラメータの値は、TABLESパラメータにリストされたすべての表(または表のパーティション)に適用されるSQL SELECT文のWHERE句が含まれている文字列です。

たとえば、ユーザーscottが、肩書きがSALESMANで給与が1600未満の従業員のみをエクスポートする場合は、次のように指定できます(この例はUNIXに基づいています)。

exp scott TABLES=emp QUERY=\"WHERE job=\'SALESMAN\' and sal \<1600\"

注意:

QUERYパラメータの値には空白が含まれるため、ほとんどのオペレーティング・システムでは、WHERE job=\'SALESMAN\'およびsal\<1600の文字列全体を二重引用符で囲むか、なんらかの方法でリテラルとしてマークする必要があります。オペレーティング・システムで予約されている文字も、エスケープ文字を前に付ける必要があります。システムの特殊文字および予約文字の詳細は、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。

この問合せの実行中に、エクスポート・ユーティリティでは次のようなSQL SELECT文が構築されます。

SELECT * FROM emp WHERE job='SALESMAN' and sal <1600; 
 

QUERYパラメータに指定された値は、TABLESパラメータにリストされているすべての表(または表のパーティション)に適用されます。たとえば、次の文では問合せに一致するempbonusの両方にある行がアンロードされます。

exp scott TABLES=emp,bonus QUERY=\"WHERE job=\'SALESMAN\' and sal\<1600\"
 

また、エクスポート・ユーティリティでは次のようなSQL文が実行されます。

SELECT * FROM emp WHERE job='SALESMAN' and sal <1600;

SELECT * FROM bonus WHERE job='SALESMAN' and sal <1600;

表にQUERY句で指定された列が見つからないと、エラー・メッセージが生成され、その不適切な表については行がエクスポートされません。

QUERYパラメータを使用する際の制限事項

  • QUERYパラメータは、全モード、ユーザー・モードまたは表領域モードのエクスポートには指定できません。

  • QUERYパラメータは、指定されたすべての表に適用可能である必要があります。

  • QUERYパラメータは、ダイレクト・パス・エクスポート(DIRECT=y)では指定できません。

  • QUERYパラメータは、ネストされた内部表がある表には指定できません。

  • データがQUERYエクスポートの結果かどうかを、エクスポート・ファイルの内容から判断することはできません。