SQLPLUSの基本的な使用法まとめ


sqlplus


[表示関連]

  • 画面をクリア
SQL> clear screen
 または
SQL> !clear
  • 実行ユーザ名を表示
SQL> show user
ユーザーは"SCOTT"です
  • 1行の表示文字数(折り返しまでの制限文字数)
SQL> set linesize 120   # "120"文字に変更(デフォルト"80")
  • ヘッダー表示間隔を変更
SQL> set pagesize 100  # デフォルト"5"行
  • カラムの幅調整
    • 数値には書式モデルが使用可能
    • 文字列には aNNN と桁数を指定
    • 日付は NLS_DATE_FORMAT 初期化パラメータを設定する必要
SQL> column NUM_COL format '000.00'   # 出力例: 123.45
SQL> column STR_COL format a15 
  • ログファイル出力
SQL> spool 20110914.log ※ログ出力開始
  〜SQLを色々実行〜
SQL> spool 20110914.log   ※ログ出力終了
  • ORACLE_HOMEを表す"?"
SQL> @?/path/to/file

なお、@は相対パス指定、@@は絶対パス指定を示す


  • NULLの表示を変更
SQL> show null
null ""                         ※デフォルトでは空文字
SQL> set null "NULL"
SQL> show null
null "NULL"               ※"NULL"と表示させる
SQL> 
  • SQLPLUS起動時に指定したファイルを実行
$ sqlplus scott/tiger @test.sql <オプション1> <オプション2> ...
  • SQLPLUS起動時のバナーを表示させない
$ cat show_user.sql 
show user
exit
$ sqlplus -s scott/tiger @show_user.sql 
ユーザーは"SCOTT"です。
  • 実行時間の計測
SQL> set timing on
SQL> select * from t_test;
   〜略〜
経過: 00:00:00.01
  • ログファイル出力
SQL> spool <出力ファイル名>
SQL> spool off                ※書き出し終了時は以下コマンドを投入
SQL> set trimspool off   ※スプール出力時の余分な行末スペースを削除する。
  • ログ出力(追加書き)
SQL> spool <出力ファイル名> append
  • CSV形式でログ出力(かなり雑)
SQL> set linesize 1000    # 折り返さないように大きな値をセット
SQL> set pagesize 0       # 数レコードごとに表示されるセパレータを非表示
SQL> set trimspool on     # 行末スペース削除
SQL> set colsep ','           # セパレータを",(カンマ)"に変更
SQL> spool  id_name_csv_file.csv  # 適当なファイル名を指定してログ出力