20040229

第6章 読みやすい出力の作成

6-1 SQL*Plusを使用した読みやすい出力の作成
■置換変数
コマンド 説明
&変数名 SQL文中の置換変数です。毎回値を入力するよう要求される変数です。 SELECT DEPARTMENT_ID, FIRST_NAME, LAST_NAME, SALARY from EMPLOYEES 
WHERE SALARY > &MIN_SAL;
  
MIN_SALに値を入力してください。4500
→ 変数に対する値の入力が要求されます。
&&変数名 1度設定した値が後は固定され再利用される変数。 SELECT DEPARTMENT_ID, FIRST_NAME, LAST_NAME, SALARY from EMPLOYEES 
WHERE SALARY > &&MIN_SAL;

MIN_SALに値を入力してください。4500
→ 値の入力プロンプトは一度しか表示されません。
  一度入力した置換変数の値が固定され、次回以降はこの値が再利用されます。
DEFINE 変数名 = 値 変数の定義をする DEFINE MIN_SAL = 4500
UNDEFINE 変数名 ↑の取り消し UNDEFINE MINSAL
ACCEPT 定義名 [データ型] プロンプト ユーザー入力のプロンプトを定義します。 ACCEPT MIN_SAL PROMPT NUMBER '下限給与額を指定してください。'
SELECT DEPARTMENT_ID, FIRST_NAME, LAST_NAME, SALARY 
from EMPLOYEES 
WHERE SALARY > &MIN_SAL;

下限給与額を指定してください。4500
UNDEFINE 定義名 ↑の取り消し UNDEFINE MIN_SAL

■SQL*Plus環境変数:SET 変数 値(確認はSHOW 変数)
コマンド 説明
ARRAY[SIZE] データベースから1度に取り出すデータの量
AUTO[COMMIT] ONにすると各SQLコマンドやPL/SQLブロックが実行されたあと、データベースが自動的にCOMMITされる
BLO[CKTERMINATOR] PL/SQLブロックを終了する場合に使う英数字以外の文字
CMDS[EP] 複数のSQL*Plusコマンドを入力する場合の区切り文字
CLOSEP 列と列の間に表示する文字列(デフォルトは空白)
DEF[INE] 置換変数の接頭辞を設定(デフォルトは&)
ECHO コマンドファイル内の実行コマンドを表示させるか否か
ESC[APE] エスケープ文字を定義する
FEED[BACK] 問合せの結果がn件以上だった場合にその数を表示する
HEADING 列見出しを表示するか否か
LIN[ESIZE] 1行も文字数を設定する
LONG LONG型データの最大表示バイト数
MAXDATA SQL*Plusの処理する行の最大幅を指定する
NEWPAGE 表示の際に各ページとページの間に何行の空白行を挿入するかを指定する
NULL SELECTコマンドの実行結果におけるNULL値を表すテキストの指定
NUMFORMAT 数値表示のデフォルト書式
NUMWIDTH 数値表示のデフォルトの幅
PAGESIZE 1ページ毎のページの行数
PAUSE [ON/OFF] 結果表示の画面毎に停止するか否かを指定する
SPACE 各列間のスペースを指定する
SQLPROMPT SQL*Plusのプロンプトを指定する
TERMOUT コマンドファイルを実行する際に実行結果を表示するか否かを指定する
TIMING 実行されたコマンドのタイミング統計を表示するか否かを指定する
VERIFY 置換変数を値に置き換える前後の値を表示するか否かを指定する
  ・Login.sql:SQL*Plus起動時に読み込まれる初期設定を格納するファイル

■レポート作成
コマンド 説明
TITLE [right|left|center] タイトル [skip n] レポートのヘッターを設定する
TITLE OFF ↑の取り消し
BTITLE [right|left|center] フッター レポートのフッターを設定する
BTITLE OFF ↑の取り消し
BREAK ON 列名 [skip page] 重複行の制御および分割
CLEAR BREAK ↑の取り消し
COMPUTE SUM OF 列名 ON 表 サマリー行を計算し出力する
CLEAR COMPUTE ↑の取り消し
COLUMN NEW VALUE 変数名 [NOPRINT] 変数の設定
COLUMN 書式 列見出し、表示の属性を設定する
CLEAR COLUMN ↑、↑↑の取り消し