Oracle Databaseに照会するときは、SPOOL
を使用できます。 SQLclを使用するときに、クエリ結果をテキストファイルにエクスポートするコマンド。
例
テーブル全体をエクスポートする例を次に示します。
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off;
行ごとに次のようになりました:
- 最初の行は
SPOOL
を使用しています 出力ファイルが書き込まれる場所を指定するコマンド。必ず/Users/barney/data/regions.txt
を変更してください システム上の場所と適切なファイル名に移動します。 - 2行目で、SQLクエリを実行しました。これはエクスポートする結果です。この場合、
regions
全体をエクスポートしました テーブル。 - 次に、
SPOOL
に切り替えました オフ。
結果のファイルは次のようになります。
REGION_ID REGION_NAME _____________________________________1ヨーロッパ2アメリカ3アジア4中東およびアフリカ4行が選択されています。
私の場合、SQLFORMAT
ansiconsole
に設定されました 、したがって、出力はそれを反映します。
これは、適切な形式に変更できます。
sql*loaderでインポートファイルとして使用できる形式で結果をエクスポートする例を次に示します。
SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole
結果:
1|「ヨーロッパ」| 2|「南北アメリカ」| 3|「アジア」| 4|「中東およびアフリカ」|4行が選択されました。
この場合、SQLFORMAT
もリセットします ansiconsole
に戻る 一度SPOOL
操作が完了しました。
フィードバックを削除
X rows selected
SET FEEDBACK off
を使用 :
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt';
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
結果:
REGION_ID REGION_NAME _____________________________________1ヨーロッパ2南北アメリカ3アジア4中東およびアフリカ
この場合、私はFEEDBACK
をオンにしました ファイルをエクスポートした後、元に戻します。
結果を追加
デフォルトでは、SPOOL
REPLACE
を使用します 、ファイルがすでに存在する場合はファイルを置き換えます。
ただし、APPEND
は使用できます 結果をファイルに追加するための引数。
例:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
結果のファイル:
REGION_ID REGION_NAME _____________________________________1ヨーロッパ2アメリカ3アジア4中東およびアフリカREGION_IDREGION_NAME_____________________________________1ヨーロッパ2アメリカ3アジア4中東およびアフリカこの例では、前の例で作成(および入力)されたファイルに結果を追加しました。その結果、結果がファイルに複製されました。
既存のファイルを上書きする
REPLACE
を使用できます 既存のファイルを新しいクエリの結果で上書きするには:SET SQLFORMAT ansiconsole SET FEEDBACK off SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE; SELECT * FROM regions; SPOOL off; SET FEEDBACK on
結果のファイル:
REGION_ID REGION_NAME _____________________________________1ヨーロッパ2南北アメリカ3アジア4中東およびアフリカ前述のように、
REPLACE
はデフォルト設定なので、この引数を完全に省略できたはずです。