SQL*Plus SET

SETとは、Oracleのシステム変数をSQL*Plusで設定するコマンドである。システム変数を設定することにより、SQL*Plusの環境設定を変更することができる。

システム変数の設定は、現在のセッションでのみ有効である。Oracleデータベースとの接続を切断して再接続したときには、システム変数の設定は初期値(デフォルト)に戻っている。

SETコマンドの構文

SET variable value
variable
設定するシステム変数の名前を指定する。
value
システム変数に設定する値を指定する。

SETで設定できるシステム変数の一覧

SQL*PlusのSETコマンドでは、次のシステム変数を設定できる。

オラクルのシステム変数一覧
コマンド 説明
HEADING 問い合わせ結果のヘッダを表示するかどうか
LINESIZE 1行に表示する文字数
LONG 問い合わせ結果に表示されるBLOB、BFILE、CLOB、LONG及びXML Type値の最大幅
PAGESIZE 各ページの行数
SET TERMOUT 問い合せ結果の端末出力を設定する。
TRIMOUT 表示行の末尾に空白がある場合、その空白を削除するかどうか

SET HEADING

SET HEADING で問い合わせ結果のヘッダを表示するかどうかを設定できる。HEADING の短縮形である HEAD でもよい。

SET HEAD[ING] {ON|OFF}
ON
問い合わせ結果のヘッダを表示する。
SQL> SET HEADING ON
OFF
問い合わせ結果のヘッダを表示しない。
SQL> SET HEAD OFF

SET LINESIZE

SET LINESIZEでSQL*Plusが1行に表示する文字数を設定できる。LINESIZEの短縮形であるLINEでもよい。

LINESIZEのデフォルト値は80である。sqlplus SPOOLコマンドによりファイルへ出力した場合でも80文字ごとに改行される。これを256文字へ拡張する例を次に示す。

SET LINE[SIZE] number
number
SQL*Plusが1行に表示する文字数
SQL> SET LINESIZE 256

SET LONG

BLOB、BFILE、CLOB、LONG及びXML Type値は文字数が非常に多いため、問い合わせ結果に表示されるのは最大80バイトに制限されている。この最大幅をSET LONGコマンドで変更できる。

SET LONG byte
byte

最大幅をバイト単位で指定する。デフォルト値は80バイトで、最大2,000,000,000バイトまで指定できる。

SET PAGESIZE

SET PAGESIZEで各ページの行数を設定できる。

SET PAGESIZE {14|n}

PAGESIZEの短縮形であるPAGESでもよい。

SET PAGES {14|n}

SET TERMOUT

SET TERMOUTで、スクリプトファイルを実行した際に問い合わせ(SELECT)の結果を端末に表示するよう設定できる。TERMOUTの短縮形であるTERMでもよい。

SET TERM[OUT] {ON|OFF}

問い合わせ結果のほか、プロシージャの呼び出し結果も同様である。SET TERMOUT ONを実行すると、プロシージャをコールした後に次のようなメッセージが出力される。

PL/SQLプロシージャが正常に終了しました。

SET TRIMOUT

SET TRIMOUTで表示行の末尾にある空白を出力するかどうかを設定できる。TRIMOUTの短縮形であるTRIMでもよい。

SET TRIM[OUT] {ON|OFF}
ON
表示行の末尾にある空白を出力しないよう設定する。
SQL> SET TRIMOUT ON
OFF
表示今日の末尾にある空白を出力するよう設定する。
SQL> SET TRIM OFF

SETの使用例

問い合わせ結果をCSV形式で表示するよう設定する。

SET HEADING ON
SET UNDERLINE OFF
SET COLSEP ','
SET LINESIZE 256