SQL*Plus SPOOL

画面に出力される結果をファイルにも出力させるには、SQL*PlusのSPOOL(短縮形はSPO)コマンドを使用する。

構文

SQL*Plusの出力結果をファイルに出力する。

SPOOL filename[.ext] [CREATE|REPLACE|APPEND]
filename

出力するファイル名を拡張子を除いて指定する。

ext

出力するファイル名の拡張子を指定する。ファイル名の拡張子の指定を省略した場合は「.lst」という拡張子が自動的に付けられる。

出力先

ファイルの出力先はカレントディレクトリとなる。

任意のディレクトリを出力先とするには、出力先ファイルを絶対パスで指定する。

SPOOL C:\Users\tsuka\example.txt

オプション

SPOOLコマンドには次のオプションを指定できる。

CREATE

CREATE(短縮形はCRE)オプションを指定すると、ファイルが新規作成される。同名のファイルが既に存在する場合は、SPOOLコマンドが失敗する。

REPLACE

REPLACE(短縮形はREP)オプションを指定すると、ファイルが上書きされる。同名のファイルが既に存在する場合は、内容が上書きされる。SPOOLコマンドのデフォルト値である。

APPEND

APPEND(短縮形はAPP)オプションを指定すると、ファイルに追加される。同名のファイルが既に存在していた場合は、既存ファイルの末尾に追加される。

追記

Oracle SQL*Plusの出力結果を既存のファイルに追記するには、SPOOLコマンドにAPPENDオプションを指定して実行する。

SPOOL example APPEND

SQL*Plusの出力結果をファイルに出力するのを止める。

SPOOL OFF

SPOOLコマンドの引数にファイル名を指定して実行すると、それ以降の出力がファイルに書き込まれます。なお、指定したファイル名に .lst という拡張子が自動的に付けられます。

SQL> spool sqllog

上記のコマンドを実行した後の出力は、画面に表示されると共に sqllog.lst というファイルにも書き込まれます。

SPOOLコマンドの引数に OFF を指定して実行すると、出力結果のファイルへの書き込みを終了します。

SQL> spool off

現在のスプール状態を確認するには、SHOW SPOOLコマンドを実行します。

SQL> show spool
spool OFF
SQL>

日付

出力先のファイル名に日付を含めるには、事前定義済変数の_DATEを利用する。

SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYYMMDD_HH24MISS';
SQL> SPOOL example-&_DATE..log

関連記事

COLUMN
列の表示属性を設定・表示する