システム変数とは、セッション毎に異なる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の初期値は空白文字である。
現在のセッションにおける列の区切り文字を確認する。
SHOW COLSEP
列の区切り文字を変更する。
SET COLSEP 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は、置換変数の接頭文字を表すシステム変数である。
置換変数の接頭文字を表示する。
SHOW DEFINE
置換変数の接頭文字を
&
に設定する。
SET DEFINE '&'
置換変数の接頭文字を使用しない。
SET DEFINE OFF
置換変数の接頭文字をデフォルト値(
&
)に設定する。
SET DEFINE ON
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 {ON|OFF|n}
既定値はONである。
SQL> SET FEEDBACK 10
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(短縮形は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の設定値を確認するには、SHOWコマンドを実行する。
SHOW LONG
LONGの値を設定するには、SETコマンドを実行する。
SET LONG byte
LONGCHUNKSIZE(短縮形はLONGC)とは、SQL*PlusがBLOB、BFILE、CLOB、LONG、NCLOB又はXML Type値を取得するときに使用する増分値のサイズ(バイト単位)である。
PAGESIZE(短縮形はPAGES)は、各ページの行数を設定するシステム変数である。
PAGESIZEの現在の値を確認するには、SHOWコマンドを実行する。
SHO[W] PAGES[IZE]
PAGESIZEの値を設定するには、SETコマンドを実行する。
SET PAGES[IZE] { 14 | n }
SERVEROUTPUT(短縮形はSERVEROUT)は、標準出力の表示/非表示を設定するシステム変数である。
SERVEROUTPUTの現在の値を確認するには、SHOWコマンドを実行する。
SHO[W] SERVEROUT[PUT]
SERVEROUTPUTの値を設定するには、SETコマンドを実行する。
SET SERVEROUT[PUT] { OFF | ON }
SERVEROUTPUTのデフォルト値はOFFである。標準出力を表示するよう設定する例を次に示す。
SET SERVEROUTPUT ON
TERMOUT(短縮形はTERM)は、スクリプトファイルを実行した際、問い合わせ(SELECT)の結果を端末に表示するか否かを設定するシステム変数である。
問い合わせ結果のほか、プロシージャの呼び出し結果も同様である。たとえば、TERMOUTの値がONのとき、プロシージャをコールした後に次のようなメッセージが出力される。
TERMOUTの現在の値を確認するには、SHOWコマンドを実行する。
SHO[W] TERM[OUT]
TERMOUTの値を設定するには、SETコマンドを実行する。
SET TERM[OUT] { ON | OFF }
TRIMSPOOLは、行末の空白文字をスプールファイルに出力するかどうかを制御するシステム変数である。
行末の空白文字をスプールファイルに出力するかどうかを確認する。
SHOW TRIMSPOOL
行末の空白文字をスプールファイルに出力させる。
SET TRIMSPOOL OFF
行末の空白文字をスプールファイルに出力させない。
SET TRIMSPOOL ON
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}
SQL> SET UNDERLINE ON
SQL> SET UNDERLINE OFF
SQL> SELECT empno, ename FROM emp;
EMPNO ENAME
50001 五百城茉央
50004 井上和
SQL> SET UNDERLINE '='
SQL> SELECT empno, ename FROM emp;
EMPNO ENAME
===== ===========
50001 五百城茉央
50004 井上和
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 }