SETとは、Oracleのシステム変数をSQL*Plusで設定するコマンドである。システム変数を設定することにより、SQL*Plusの環境設定を変更することができる。
システム変数の設定は、現在のセッションでのみ有効である。Oracleデータベースとの接続を切断して再接続したときには、システム変数の設定は初期値(デフォルト)に戻っている。
SET variable value
SQL*PlusのSETコマンドでは、次のシステム変数を設定できる。
コマンド | 説明 |
---|---|
HEADING | 問い合わせ結果のヘッダを表示するかどうか |
LINESIZE | 1行に表示する文字数 |
LONG | 問い合わせ結果に表示されるBLOB、BFILE、CLOB、LONG及びXML Type値の最大幅 |
PAGESIZE | 各ページの行数 |
SET TERMOUT | 問い合せ結果の端末出力を設定する。 |
TRIMOUT | 表示行の末尾に空白がある場合、その空白を削除するかどうか |
SET HEADING で問い合わせ結果のヘッダを表示するかどうかを設定できる。HEADING の短縮形である HEAD でもよい。
SET HEAD[ING] {ON|OFF}
SQL> SET HEADING ON
SQL> SET HEAD OFF
SET LINESIZEでSQL*Plusが1行に表示する文字数を設定できる。LINESIZEの短縮形であるLINEでもよい。
LINESIZEのデフォルト値は80である。sqlplus SPOOLコマンドによりファイルへ出力した場合でも80文字ごとに改行される。これを256文字へ拡張する例を次に示す。
SET LINE[SIZE] number
SQL> SET LINESIZE 256
BLOB、BFILE、CLOB、LONG及びXML Type値は文字数が非常に多いため、問い合わせ結果に表示されるのは最大80バイトに制限されている。この最大幅をSET LONGコマンドで変更できる。
SET LONG byte
最大幅をバイト単位で指定する。デフォルト値は80バイトで、最大2,000,000,000バイトまで指定できる。
SET PAGESIZEで各ページの行数を設定できる。
SET PAGESIZE {14|n}
PAGESIZEの短縮形であるPAGESでもよい。
SET PAGES {14|n}
SET TERMOUTで、スクリプトファイルを実行した際に問い合わせ(SELECT)の結果を端末に表示するよう設定できる。TERMOUTの短縮形であるTERMでもよい。
SET TERM[OUT] {ON|OFF}
問い合わせ結果のほか、プロシージャの呼び出し結果も同様である。SET TERMOUT ONを実行すると、プロシージャをコールした後に次のようなメッセージが出力される。
PL/SQLプロシージャが正常に終了しました。
SET TRIMOUTで表示行の末尾にある空白を出力するかどうかを設定できる。TRIMOUTの短縮形であるTRIMでもよい。
SET TRIM[OUT] {ON|OFF}
SQL> SET TRIMOUT ON
SQL> SET TRIM OFF
問い合わせ結果をCSV形式で表示するよう設定する。
SET HEADING ON
SET UNDERLINE OFF
SET COLSEP ','
SET LINESIZE 256