!!!Sql*Plus 環境設定 {{category Oracle,nolink}}OracleのSQLコンソール、Sql*Plusの環境設定、システム変数に関してです。設定を行うにはSETコマンド、確認するにはSHOWコマンドを使用します。 ""注:アスタリスク(*)が付いているものは、iSQL*Plusではサポートされていない。 !!APPINFO APPI[NFO] { OFF | ON | text } DBMS_APPLICATION_INFOパッケージを使用した、スクリプトの自動登録を設定します。 !!ARRAYSIZE - フェッチ行数の設定 SET ARRAY[SIZE] { 15 | n } SQL*Plusがデータベースから一度にフェッチする行数を設定します。1〜5000の値を設定できる。 大きな値を設定することで、問い合わせの際の効率が良くなる。ただし、一度に大量のデータを取り出すため、相応のメモリが必要となる。従って、データ量が多い場合に、メモリ不足になる。その場合は、処理スピードが多少犠牲になるが、小さい数値を設定することで正常に実行することができる。 なお、100前後以上の値を指定してもパフォーマンスにはほとんど差がなくなる。(環境により異なる) !!AUTOCOMMIT AUTO[COMMIT] { OFF | ON | IMM[EDIATE] | n } Oracleのトランザクションのコミットを行うタイミングを制御する。 ::OFF :::自動コミットが抑制される。SQLのCOMMITコマンドを発行しないとコミットされない。 ::ON :::SQLのINSERT,UPDATE,DELETEコマンド、及び、PL/SQLブロックが正常に実行されるとコミットが行われる。 ::IMMEDIATE :::''ONとほぼ同等?'' ::n ( 0 < n < ''2^31'') :::SQLのINSERT,UPDATE,DELETEコマンド、PL/SQLブロックが正常にn回実行された後で、コミットが行われる。 回数のカウントは、次に示す動作が正常終了した後、ゼロにリセットされる。 *INSERT,UPDATE,DELETEコマンド、PL/SQLブロックをn回実行する *コミット (1回) *ロールバック (1回) *SET AUTOCOMMITコマンド (1回) ""'''注意:''' この機能において1つのPL/SQLブロックは、その中に実際に含まれているSQLコマンドの数にかかわらず1つのトランザクションとみなされる。 !!AUTOPRINT AUTOP[RINT] { OFF | ON } バインド変数の自動プリント制御を設定する。ON/OFFの指定によって、バインド変数(正常に実行できるPL/SQLブロックで参照されているか、またはEXECUTEコマンドで使用されている)を自動表示するかどうかを制御する。 !!AUTORECOVERY AUTORECOVERY { ON | OFF } !!AUTOTRACE - 実行計画・統計の表示設定 SET AUTOT[RACE] { OFF | ON | TRACE[ONLY] } [EXP[LAIN]] [STAT[ISTICS]] SQLの実行計画、および実行時に必要としたシステムリソース(実行統計)などを表示させる。 ::OFF :::レポート出力をしない ::ON :::レポート出力する ::TRACEONLY :::データをフェッチするが、結果を出力せずにレポートのみ出力する ::EXPLAIN :::実行計画のみ ::STATISTICS :::実行統計のみ ""注意:実行計画の情報を格納するためのPLAN_TABLE表が必要になる。 ""詳細は、[[実行計画|Oracle/SqlPlan]]の'''PLAN_TABLE の作成'''を参照のこと !!BLOCKTERMINATOR BLO[CKTERMINATOR] { . | c } PL/SQLブロックを終了する場合に使用する英数字以外の文字を、cに設定する。ブロックを実行するには、RUNまたは/ (スラッシュ)コマンドを発行しなければならない。 !!CMDSEP CMDS[EP] { ; | c | OFF | ON } 1行に複数のSQL*Plusコマンドを入力する場合に、各コマンドの区切り文字として使う英数字以外の文字をcに設定する。ON/OFFの指定によって、複数のコマンドを1行に入力できるかどうかを制御する。ONにすると、コマンドの区切り文字は自動的にセミコロン(;)に設定される。 !!COLSEP - 問い合わせ結果の列と列の間のテキスト設定 SET COLSEP { △(空白) | text } 問い合わせ(SELECT)の結果を表示する際、列と列の間に表示されるテキストを設定する。設定するテキストに空白等が含まれる場合は、ダブル(もしくは、シングル)クォーテーションで囲む必要がある。デフォルトの設定は、1つの半角空白である。 !!COMPATIBILITY COM[PATIBILITY] { V7 | V8 | NATIVE } !!CONCAT CON[CAT] { . | c | OFF | ON } !!COPYCOMMIT COPYC[OMMIT] { 0 | n } !!COPYTYPECHECK COPYTYPECHECK { OFF | ON } !!DEFINE DEF[INE] { & | c | OFF | ON } !!DESCRIBE DESCRIBE [DEPTH { 1 | n | ALL }] [LINENUM { ON | OFF }] [INDENT { ON | OFF }] !!ECHO - コマンドファイル内の実行コマンドを表示設定 SET ECHO { OFF | ON } STARTコマンド(@,@@ 含む)を使用してコマンド・ファイル内の実行コマンドをリストするかどうか、を制御します。 ::ON :::コマンドを表示する ::OFF :::コマンドを表示しない !!EDITFILE (*) EDITF[ILE] file_name[.ext] !!EMBEDDED EMB[EDDED] { OFF | ON } !!ESCAPE ESC[APE] { \ | c | OFF | ON } !!FEEDBACK FEED[BACK] { 6 | n | OFF | ON } !!FLAGGER FLAGGER { OFF | ENTRY | INTERMED[IATE] | FULL } !!FLUSH (*) FLU[SH] { OFF | ON } !!HEADING HEA[DING] { OFF | ON } !!HEADSEP HEADS[EP] { | | c | OFF | ON } !!INSTANCE INSTANCE [ instance_path | LOCAL ] !!LINESIZE - 1行の文字数設定 SET LIN[ESIZE] { 80 | n } ({ 150 | n } iSQL*Plus) 1行に表示される文字数を設定する。また、TTITLEとBTITLEでは、中央揃えや右揃えのテキストの位置も制御する。設定できる数値は、1からだが、最大値はシステムに依存する。 !!LOBOFFSET LOBOF[FSET] { n | 1 } !!LOGSOURCE LOGSOURCE [pathname] !!LONG LONG { 80 | n } !!LONGCHUNKSIZE LONGC[HUNKSIZE] { 80 | n } !!MARKUP MARK[UP] HTML [ ON | OFF ] [HEAD text] [BODY text] [TABLE text] [ENTMAP { ON | OFF }] [SPOOL { ON | OFF }] [PRE[FORMAT] { ON | OFF }] !!NEWPAGE (*) NEWP[AGE] { 1 | n | NONE } !!NULL - NULL項目の表示設定 SET NULL text 取得した項目がNULLの場合に表示する内容を設定する。 !!NUMFORMAT - 数値項目の表示書式設定 SET NUMF[ORMAT] format 数値を表示する際のデフォルト・フォーマットを設定する。 !!NUMWIDTH - 数値項目の表示幅の設定 SET NUM[WIDTH] { 10 | n } 数値を表示する際のデフォルトの表示幅を設定する。 !!PAGESIZE - 1ページの行数設定 SET PAGES[IZE] { 24 | n } 1ページ辺りの行数を設定する。この行数は、問い合わせの行数指定ではなく、タイトルや見出しを含めたすべての行数となる。 ゼロを設定すると、見出し、ページの区切り、タイトル、冒頭の空白行等の表示が行われなくなる。 !!PAUSE PAU[SE] { OFF | ON | text } !!RECSEP RECSEP { WR[APPED] | EA[CH] | OFF } !!RECSEPCHAR RECSEPCHAR { _ | c } !!SERVEROUTPUT SERVEROUT[PUT] { OFF | ON } [SIZE n] [FOR[MAT] { WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED] }] !!SHIFTINOUT (*) SHIFT[INOUT] { VIS[IBLE] | INV[ISIBLE] } !!SHOWMODE (*) - システム変数変更時の新旧の設定表示 SET SHOW[MODE] { OFF | ON } SETコマンドでシステム変数を変更した際に、変更前に設定されていた・変更後に設定された内容を表示するか否かを設定する。ONにした場合、新旧の設定内容が表示される。OFFにした場合、新旧の設定内容は表示されない。 !!SQLBLANKLINES (*) SQLBL[ANKLINES] { ON | OFF } !!SQLCASE SQLC[ASE] { MIX[ED] | LO[WER] | UP[PER] } !!SQLCONTINUE (*) SQLCO[NTINUE] { > | text } !!SQLNUMBER (*) SQLN[UMBER] { OFF | ON } !!SQLPLUSCOMPATIBILITY SQLPLUSCOMPAT[IBILITY] {x.y[.z]} !!SQLPREFIX (*) SQLPRE[FIX] { # | c } !!SQLPROMPT (*) SQLP[ROMPT] { SQL> | text } !!SQLTERMINATOR SQLT[ERMINATOR] { ; | c | OFF | ON } !!SUFFIX (*) SUF[FIX] { SQL | text } !!TAB TAB { OFF | ON } !!TIME - 現在時刻の表示設定 SET TI[ME] { OFF | ON } SQLコマンドプロンプトに現在時刻を表示するか否かを設定する。ONにすると「20:15:11 SQL>」のように時刻が表示される。OFFにすると時刻の表示はされない。 '''補足:'''作業ログを残して何時に実行したかを見るときに指定すると良い。 !!TIMING - 経過時間の表示設定 SET TIMI[NG] { OFF | ON } 実行したSQL文の処理経過時間を表示するかを設定する。ONにすると、処理件数を表示後、経過時間を表示する。OFFにすると表示されない。 実行されたSQLコマンドまたはPL/SQLブロックのそれぞれSQL文単位の処理時間をhh:mm:ss.nn(時:分:秒.ms)の形で表示する。特定の処理単位の時間を測定する場合は、TIMINGコマンドを使用する。 !!TERMOUT - スクリプト実行時の問い合せ結果の端末出力の抑制設定 SET TERM[OUT] { OFF | ON } スクリプトファイルを実行した際、問い合わせ(SELECT)の結果を端末に表示させないか否かを設定する。ONにすると、問い合わせの結果が表示されなくなる。OFFにすると、表示される。 ただし、抑制されるのは、START(@,@@)コマンドで実行した、スクリプトファイルの問い合わせ文のみで、端末で直接入力した問い合わせ文の結果は表示される。 !!TRIMOUT - 端末出力の各行の末尾の空白の抑制設定 SET TRIM[OUT] { OFF | ON } 端末に出力される各行の末尾に空白を付けないか否かの設定をする。ONにすると、空白は各行の末尾で削除される。OFFにすると、後続する空白を組み込むことができる。 TRIMOUTは、端末に出力される内容に対してのみ有効で、スプールの出力には影響しない。 !!TRIMSPOOL - スプール出力の各行の末尾の空白の抑制設定 SET TRIMS[POOL] { ON | OFF } スプールに出力される各行の末尾に空白を付けないか否かの設定をする。ONにすると、空白は各行の末尾で削除される。OFFにすると、後続する空白を組み込むことができる。 TRIMSPOOLは、スプールに出力される内容に対してのみ有効で、端末出力には影響しない。 !!UNDERLINE UND[ERLINE] { - | c | ON | OFF } !!VERIFY - 置換変数の置き換え内容の表示設定 SET VER[IFY] { OFF | ON } 置換変数を値に置き換える前後のSQL文またはPL/SQLコマンドのテキストを表示するかを設定する。 !!WRAP WRA[P] { OFF | ON } !!ALL - システム変数の表示 SHOW ALL 設定されているすべてのシステム変数を表示する。 !!BTITLE (#) BTI[TLE] !!ERRORS (#) ERR[ORS] [{FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER | VIEW | TYPE | TYPE BODY | DIMENSION | JAVA CLASS} [schema.]name] !!LNO (#) LNO !!PARAMETERS (#) PARAMETERS [parameter_name] !!PNO (#) PNO !!RELEASE (#) REL[EASE] !!REPFOOTER (#) REPF[OOTER] !!REPHEADER (#) REPH[EADER] !!SGA (#) SGA !!SPOOL (*) - スプール設定の表示 SHOW SPOO[L] SPOOLコマンドで設定した内容を表示する。 !!SQLCODE - SQLコードの表示 SHOW SQLCODE 直前の処理のSQLCODEを表示する。 !!TTITLE (#) TT[ITLE] !!USER - ログインユーザ名の表示 SHOW USER ログインユーザ名を表示させる。接続先は表示されないので、複数のTSNで同じユーザを使っている場合は注意が必要である。