Oracle SQL*Plus システム変数

システム変数とは、セッション毎に異なるSQL*Plus環境を設定する変数である。システム変数の設定を確認するにはSHOWコマンド、システム変数の設定を変更するにはSETコマンドを使用する。

システム変数の一覧

システム変数の一覧
システム変数 説明
COLSEP 列と列の区切り文字
DEFINE 置換変数の接頭文字
ECHO コマンドファイル内の実行コマンドを表示する
FEEDBACK 結果レコード件数の表示
HEADING 問い合わせ結果のヘッダを表示する
LINESIZE 1行に表示する文字数
LONG LONG値をコピーするための最大幅(バイト単位)
LONGCHUNKSIZE BLOB、BFILE、CLOB、LONG、NCLOB又はXML Type値を取得するときに使用する増分値のサイズ
PAGESIZE 各ページの行数
SERVEROUTPUT 標準出力の表示/非表示
SQLPROMPT SQL*Plusのコマンド・プロンプトを設定する。
TERMOUT 問い合せ結果の端末出力の抑制設定
TRIMOUT 表示行の末尾に空白がある場合、その空白を削除するかどうか。
TRIMSPOOL 行末のスペースを削除
UNDERLINE ヘッダと問い合わせ結果の境界線を表示する
VERIFY 置換変数の置き換え内容の表示設定

COLSEP

COLSEPは、列の区切り文字を設定するシステム変数である。COLSEPの初期値は空白文字である。

確認

現在のセッションにおける列の区切り文字を確認する。

SHOW COLSEP

設定

列の区切り文字を変更する。

SET COLSEP char
char
区切り文字
SQL> SHOW COLSEP
SQL> colsep " "
SQL> SELECT empno, ename FROM emp;

EMPNO ENAME
----- -----------
50001 五百城茉央
50004 井上和

SQL> SET COLSEP ','
SQL> SELECT empno, ename FROM emp;

EMPNO,ENAME
-----,-----------
50001,五百城茉央
50004,井上和

DEFINE

DEFINEは、置換変数の接頭文字を表すシステム変数である。

置換変数の接頭文字を表示する。

SHOW DEFINE

置換変数の接頭文字を & に設定する。

SET DEFINE '&'

置換変数の接頭文字を使用しない。

SET DEFINE OFF

置換変数の接頭文字をデフォルト値( & )に設定する。

SET DEFINE ON

ECHO

ECHOはSQLスクリプトファイルを実行したときに実行コマンドを表示するかどうかを制御するシステム変数である。

現在のセッションにおいてSQLスクリプトファイルを実行した際に実行コマンドを表示するかどうかを確認する。

SHOW ECHO

SQLスクリプトファイルを実行したときに実行コマンドを表示させる。

ECHO ON

SQLスクリプトファイルを実行したときに実行コマンドを表示させない。

ECHO OFF

SQL> SHOW ECHO
echo OFF
SQL> @foo

EMPNO ENAME
----- ----------
10001 堀内まり菜

SQL> SET ECHO ON
SQL> @foo
SQL> SELECT empno, ename FROM emp;

EMPNO ENAME
----- ----------
10001 堀内まり菜

SQL>

下記のようにSQL*PlusをUnixシェルのヒアドキュメントで実行する場合は、SET ECHO ONに設定しても、実行コマンドは画面に表示されない。

#!/bin/sh
sqlplus marina/horiuchi <<EOF
SELECT * FROM DUAL;
EXIT
EOF

FEEDBACK

FEEDBACKは、結果レコード件数の表示を設定する変数である。

FEEDBACK {ON|OFF|n}
ON
問い合わせ結果のレコード件数が1件以上の場合、レコード件数を表示する。
OFF
問い合わせ結果のレコード件数を表示しない。
n
問い合わせ結果のレコード件数が n 件以上の場合、レコード件数を表示する。

既定値はONである。

SQL> SET FEEDBACK 10

HEADING

HEADINGは、問い合わせ結果のヘッダを表示するかどうかを制御するシステム変数である。HEADINGの短縮形はHEADであり、HEAD以降の文字列は省略できる。つまり、SHOW HEADINGはSHOW HEADやSHOW HEADI、SHOW HEADINと記述することができる。

ヘッダと問い合わせ結果の境界線だけ表示しないようにするには、UNDERLINEシステム変数をOFFに設定する。

問い合わせ結果のヘッダを表示するかどうかを確認する。

SHOW HEADING

問い合わせ結果のヘッダを表示する。

SET HEADING ON

問い合わせ結果のヘッダを表示しない。

SET HEADING OFF

SQL> SHOW HEADING
heading ON
SQL> SET HEADING OFF
SQL> SELECT empno, ename FROM emp;

10001 堀内まり菜

SQL> SET HEAD ON
SQL> SELECT empno, ename FROM emp;

EMPNO ENAME
----- ----------
10001 堀内まり菜

SQL>

LINESIZE

LINESIZE(短縮形はLIN)は、SQL*Plusが1行に表示する文字数を設定するシステム変数である。

LINESIZEの現在の値を確認するには、SHOWコマンドを実行する。

SHO[W] LIN[ESIZE]

LINESIZEの値を設定するには、SETコマンドを実行する。

SET LIN[ESIZE] { 80 | n }

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

SET LINESIZE 256

LONG

LONGはLONG値をコピーするための最大幅(バイト単位)を設定するシステム変数である。

LONGの設定値を確認するには、SHOWコマンドを実行する。

SHOW LONG

LONGの値を設定するには、SETコマンドを実行する。

SET LONG byte

LONGCHUNKSIZE

LONGCHUNKSIZE(短縮形はLONGC)とは、SQL*PlusがBLOB、BFILE、CLOB、LONG、NCLOB又はXML Type値を取得するときに使用する増分値のサイズ(バイト単位)である。

PAGESIZE

PAGESIZE(短縮形はPAGES)は、各ページの行数を設定するシステム変数である。

PAGESIZEの現在の値を確認するには、SHOWコマンドを実行する。

SHO[W] PAGES[IZE]

PAGESIZEの値を設定するには、SETコマンドを実行する。

SET PAGES[IZE] { 14 | n }

SERVEROUTPUT

SERVEROUTPUT(短縮形はSERVEROUT)は、標準出力の表示/非表示を設定するシステム変数である。

SERVEROUTPUTの現在の値を確認するには、SHOWコマンドを実行する。

SHO[W] SERVEROUT[PUT]

SERVEROUTPUTの値を設定するには、SETコマンドを実行する。

SET SERVEROUT[PUT] { OFF | ON }

SERVEROUTPUTのデフォルト値はOFFである。標準出力を表示するよう設定する例を次に示す。

SET SERVEROUTPUT ON

TERMOUT

TERMOUT(短縮形はTERM)は、スクリプトファイルを実行した際、問い合わせ(SELECT)の結果を端末に表示するか否かを設定するシステム変数である。

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

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

確認

TERMOUTの現在の値を確認するには、SHOWコマンドを実行する。

SHO[W] TERM[OUT]

設定

TERMOUTの値を設定するには、SETコマンドを実行する。

SET TERM[OUT] { ON | OFF }

TRIMSPOOL

TRIMSPOOLは、行末の空白文字をスプールファイルに出力するかどうかを制御するシステム変数である。

確認

行末の空白文字をスプールファイルに出力するかどうかを確認する。

SHOW TRIMSPOOL

設定

行末の空白文字をスプールファイルに出力させる。

SET TRIMSPOOL OFF

行末の空白文字をスプールファイルに出力させない。

SET TRIMSPOOL ON

UNDERLINE

UNDERLINEは、問い合わせ結果とヘッダの境界線を表示するかどうかを制御するシステム変数である。UNDERLINEの短縮形はUNDであり、UND以降の文字列は省略できる。つまり、SHOW UNDERLINEはSHOW UNDやSHOW UNDE、SHOW UNDER、SHOW UNDERL、SHOW UNDERLI、SHOW UNDERLINと記述することもできる。

ヘッダそのものを表示しないようにするには、HEADINGシステム変数をOFFに設定する。

確認

ヘッダとの境界線を表示するかどうかを確認する。

SHO[W] UND[ERLINE]

設定

SET UND[ERLINE] {ON|OFF|char}
ON
ヘッダとの境界線を表示する。
SQL> SET UNDERLINE ON
OFF
ヘッダとの境界線を表示しない。
SQL> SET UNDERLINE OFF
SQL> SELECT empno, ename FROM emp;

EMPNO ENAME
50001 五百城茉央
50004 井上和
char
ヘッダとの境界線に使用する文字を指定する。
SQL> SET UNDERLINE '='
SQL> SELECT empno, ename FROM emp;

EMPNO ENAME
===== ===========
50001 五百城茉央
50004 井上和

VERIFY

VERIFY(短縮形はVER)は、置換変数を値に置き換える前後のSQL文またはPL/SQL文コマンドのテキストを表示するかを設定するシステム変数である。

VERIFYのデフォルト値はONである。VERIFYの値がONのとき、置換変数を値に置き換える際、次のようなテキストが表示される。

旧   2:   :result := MyPackage.MyFunction('&1', &2);
新   2:   :result := MyPackage.MyFunction('USDJPY', 89.95);

VERIFYの値をOFFに設定すると、このようなテキストが表示されなくなる。

確認

VERIFYの現在の値を確認するには、SHOWコマンドを実行する。

SHO[W] VER[IFY]

設定

VERIFYの値を設定するには、SETコマンドを実行する。

SET VER[IFY] { ON | OFF }