ここではORACLE社が提供するPL/SQLでシステム変数をセットする方法を紹介しています。
システム変数とは
OracleのSQL*Plusにおけるシステム変数とは、SQL*Plusの環境設定を変更することが出来る変数です。
システム変数はセッション毎に変更することが出来るので、プログラムの実行時やデータベース上での作業を行う都度、適切な環境に変更して使うことが出来ます。
システム変数を設定と確認方法
システム変数の設定
システム変数はSETコマンドを使って設定します。
SETコマンドを使った基本構文は次の通りです。
SET システム変数名 設定値
次の例では、echoというシステム変数にOFFを設定しています。
このように「SET システム変数名 設定値」でシステム変数の設定が可能です。
SQL> set echo off
システム変数の確認
システム変数は、SHOWコマンドで現在の値を確認することが出来ます。
SHOWコマンドの基本構文は次の通りです。
SHOW システム変数名
次の例では、echo変数の値を確認しています。現在はOFFになっていることが分かります。
SQL> show echo
echo OFF
システム変数の一覧
システム変数 | 内容 |
SET APPINFO {ON | OFF | text} | DBMS_APPLICATION_INFOパッケージでスクリプトの自動登録の設定 |
SET ARRAYSIZE {15 | n} | データベースから一度にフェッチする配列の大きさ |
SET AUTOCOMMIT {ON | OFF | IMM[EDIATE] | n} | トランザクションを自動でコミットする設定 |
SET AUTOPRINT {ON | OFF} | バインド変数の自動出力 |
SET AUTORECOVERY [ON | OFF] | RECOVERYコマンドでアーカイブREDOログファイルのデフォルトファイル名を自動的に適用するための設定 |
SET AUTOTRACE {ON | OFF | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] | 正常に実行されたSQL(DML文)のレポートを表示 |
SET BLOCKTERMINATOR {. | c | ON | OFF} | PL/SQLブロックを終了するための文字の設定 |
SET CMDSEP {; | c | ON | OFF} | SQLPlusコマンドを区切るための文字の設定 |
SET COLSEP { | text} | 列と列の間に出力する文字の設定 |
SET CONCAT {. | c | ON | OFF} | 変数と「変数に続く文字列」との区切り文字に使用される文字の設定 |
SET COPYCOMMIT {0 | n} | COPYコマンドによるコミットポイントの設定 |
SET COPYTYPECHECK {ON | OFF} | COPYコマンドによる、表へのレコードの挿入または追加するときのデータ型のチェックの設定 |
SET DEFINE {& | c | ON | OFF} | 置換変数の接頭辞、ON/OFFの設定 |
SET DESCRIBE [DEPTH {1 | n | ALL}] [LINENUM {ON | OFF}] [INDENT {ON | OFF}] | DESCコマンドの表示レベルの設定 |
SET ECHO {ON | OFF} | SQLPlusでコマンドの表示設定 |
SET EDITFILE file_name[.ext] | EDITコマンドのデフォルトファイル名の設定 |
SET EMBEDDED {ON | OFF} | ページで各レポートが始まるかを設定 |
SET ERRORLOGGING {ON | OFF} [TABLE [schema.]tablename] [TRUNCATE] [IDENTIFIER identifier] | 各エラーを表に出力する設定 |
SET ESCAPE {\ | c | ON | OFF} | エスケープ文字の設定 |
SET ESCCHAR {@ | ?| % | $ | OFF} | ファイル名でエスケープする特殊文字を設定 |
SET EXITCOMMIT {ON | OFF} | EXITコマンドのデフォルト動作をCOMMITにするかROLLBACKにするか設定 |
SET FEEDBACK {6 | n | ON | OFF} | 問合せ結果の件数の表示・非表示の設定、または表示する最小の件数の設定 |
SET FLAGGER {OFF | ENTRY | INTERMED[IATE] | FULL} | SQL文がANSI/ISO SQL92規格に準拠しているかチェックするかの設定 |
SET FLUSH {ON | OFF} | 画面出力(バッファ)の設定 |
SET HEADING {ON | OFF} | 結果の列ヘッダの出力の設定 |
SET HEADSEP { | c | ON | OFF} | 結果の列ヘッダの区切り文字の設定 |
SET INSTANCE [instance_path | LOCAL] | 現行セッションのデフォルトのインスタンスの設定 |
SET LINESIZE {80 | n} | SQLPlusで1行に表示する文字数の設定 |
SET LOBOFFSET {1 | n} | BLOB、BFILE、CLOB、NCLOBデータを取得し、表示する開始位置の設定 |
SET LOGSOURCE [pathname] | RECOVERYコマンドで使用するアーカイブ・ログファイルの位置の設定 |
SET LONG {80 | n} | LONG、BLOB、BFILE、CLOB、NCLOBおよびXMLType値を表示するための表示幅の設定 |
SET LONGCHUNKSIZE {80 | n} | LONG、BLOB、BFILE、CLOB、NCLOBおよびXMLType値を取得するためのチャンクサイズの設定 |
SET MARKUP HTML [ON | OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON | OFF}] [SPOOL {ON | OFF}] [PRE[FORMAT] {ON | OFF}] | HTMLマークアップテキスト形式に変換するかどうかの設定 |
SET NEWP[AGE] {1 | n | NONE} | ページの開始位置からヘッダまでの余白行数の設定 |
SET NULL text | SELECTコマンドで実行結果の中にあるNULL値を代替する文字の設定 |
SET NUMFORMAT format | 数値を表示するためのデフォルト書式の設定 |
SET NUMWIDTH {10 | n} | 数値を表示するためのデフォルト表示幅の設定 |
SET PAGESIZE {14 | n} | ページの行数の設定 |
SET PAUSE {ON | OFF | text} | 一時停止の設定 |
SET RECSEP {WR[APPED] | EA[CH] | OFF} | レコードを分離させるためのレコードセパレータの表示・非表示の設定 |
SET RECSEPCHAR { | c} | レコードセパレータとして表示する文字の設定 |
SET SERVEROUTPUT {ON | OFF} [SIZE {n | UNL[IMITED]}] [FOR[MAT] {WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]}] | PL/SQLの処理を標準出力するかどうかの設定の出力(DBMS_OUTPUT.PUT_LINE、PL/SQLブロックの出力をSQLPlusで表示するかどうかを制御する) |
SET SHIFTINOUT {VIS[IBLE] | INV[ISIBLE]} | シフト文字の表示するかどうかの設定 |
SET SHOWMODE {ON | OFF} | SETを使用したとき、システム変数の変更前後の値を表示するかどうかの設定 |
SET SQLBLANKLINES {ON | OFF} | SQLコマンド、スクリプト内で空白行を許可するかどうかの設定 |
SET SQLCASE {MIX[ED] | LO[WER] | UP[PER]} | SQLコマンド、PL/SQLブロックで入力された文字を、大文字または小文字に変換するかどうかの設定 |
SET SQLCONTINUE {> | text} | SQLPlusで複数行のコマンドを入力する場合の設定 |
SET SQLNUMBER {ON | OFF} | 複数行のコマンド、スクリプトに行番号を表示するかどうかの設定 |
SET SQLPLUSCOMPAT[IBILITY] {x.y[.z]} | 動作が確認できるSQLPlusのバージョン設定 |
(x.y[.z]で指定されたリリースまたはバージョン互換に設定) | |
SET SQLPREFIX {# | c} | SQLPlusの接頭文字の設定 |
SET SQLPROMPT {SQL> | text} | SQLPlusのコマンドプロンプトに表示される文字列の設定 |
SET SQLTERMINATOR {; | c | ON | OFF} | SQLコマンドを終了・実行するための文字の設定 |
SET SUFFIX {SQL | text} | SQLPlusが使用するスクリプトファイルのデフォルト拡張子の設定 |
SET TAB {ON | OFF} | SQLPlusでタブを表示するかどうかの設定 |
SET TERMOUT {ON | OFF} | スクリプトから実行するコマンドによる出力(@、@@またはSTARTを使用して実行するスクリプト)を表示するかどうかの設定 |
SET TIME {ON | OFF} | SQLPlusに現在の時刻を表示するかどうかの設定 |
SET TIMING {ON | OFF} | タイミング統計(経過時間など)の表示をするかどうかの設定 |
SET TRIMOUT {ON | OFF} | SQLPlusで表示結果の各行の終わりから行末まで空白を入れるかどうかの設定 |
SET TRIMSPOOL {ON | OFF} | SQLPlusで、スプールの各行の終わりから行末までに空白を入れるかどうかの設定 |
SET UNDERLINE {- | c | ON | OFF} | SQLPlusで列ヘッダに下線を表示するかどうかの設定 |
SET VERIFY {ON | OFF} | 置換変数で変更前後の状態を表示するかどうかの設定 |
SET WRAP {ON | OFF} | 1行に収まらない場合、収まらない部分を折り返すか切り捨てるかの設定 |