Execution Plan
3 WHERE JOB = 'SALESMAN';
問合せ結果は、次のように出力されます。
Department Employee Salary Commission 30 ALLEN 1600 300 30 WARD 1250 500 30 MARTIN 1250 1400 30 TURNER 1500 0
列ヘッダーを複数の単語に変更するには、COLUMNコマンドを入力するときに、新しい ヘッダーを一重引用符または二重引用符で囲みます。列ヘッダーを複数の行に表示するに は、新しい行を開始する位置に垂直バー(|)を使用します。(SETコマンドのHEADSEP変 数の設定を変更すると、垂直バー以外の文字を使用することができます。詳細は、第8章の
「SET」コマンドを参照してください。)
例 例例
例4-2 列ヘッダーの分割列ヘッダーの分割列ヘッダーの分割列ヘッダーの分割
列ENAMEにEMPLOYEE NAMEというヘッダーを付け、新しいヘッダーを2行に分割す
るには、次のように入力します。
SQL> COLUMN ENAME HEADING ’Employee|Name’
この時点で、次のように/(スラッシュ)コマンドで問合せを再実行します。
SQL> /
問合せ結果は、次のように出力されます。
Employee
Department Name Salary Commission 30 ALLEN 1600 300 30 WARD 1250 500 30 MARTIN 1250 1400 30 TURNER 1500 0
それぞれの列のヘッダーに下線を付けるために使用する文字を変更するには、使用する文字 をSETコマンドのUNDERLINE変数に設定します。
注意 注意注意
注意: 新しいヘッダーは、別のヘッダーを入力するか、列の書式をリ セットするか、またはSQL*Plusを終了するまで有効です。
例例例
例4-3 下線文字の設定下線文字の設定下線文字の設定下線文字の設定
ヘッダーに下線を付けるために使用する文字を等号に変更し、問合せを再実行するには、次 のコマンドを入力します。
SQL> SET UNDERLINE = SQL> /
問合せ結果は、次のように出力されます。
Employee
Department Name Salary Commission
========== ========== ========== ==========
30 ALLEN 1600 300 30 WARD 1250 500 30 MARTIN 1250 1400 30 TURNER 1500 0
この時点で、次のように下線文字をダッシュに戻してください。
SQL> SET UNDERLINE ’-’
NUMBER 列の書式設定 列の書式設定 列の書式設定 列の書式設定
NUMBER列を表示する場合は、SQL*Plusのデフォルトの表示幅を使用するか、または
COLUMNコマンドを使用してデフォルトの表示幅を変更できます。次の各項では、デフォ
ルトの表示、およびCOLUMNコマンドでデフォルトを変更する方法について説明します。
デフォルトの表示 デフォルトの表示 デフォルトの表示 デフォルトの表示
NUMBER列の幅は、ヘッダーの幅か、FORMATの幅に符号用の1つの空白を加えた幅のど
ちらか大きい方に等しくなります。明示的にFORMATを使用しなかった場合、列の幅は必 ず最低でもSET NUMWIDTHの値になります。
注意注意注意
注意: ダッシュは、引用符で囲んでください。そうしないと、ダッシュ は、次の行へコマンドを継続することを示すハイフンとして解釈されま す。
通常、SQL*Plusでは、数値はSETコマンドのNUMWIDTH変数の値で決まる標準表示幅
(通常は10)を最大幅として、必要なだけの桁数で表示されます。SET NUMWIDTHの値よ
り大きい数値は、許容される最大文字数まで切り上げられるか、または切り捨てられます。
COLUMNコマンドで書式モデルを使用することによって、NUMBER列に別の書式を選択
できます。書式モデルとは、列の中に数値を表示する方法を表したもので、複数の9を使用 して数字の桁を表します。
デフォルト表示の変更 デフォルト表示の変更 デフォルト表示の変更 デフォルト表示の変更
COLUMNコマンドを使用すると、次に示すように、書式を設定する列を識別し、使用する
モデルを示すことができます。
COLUMN column_name FORMAT model
列の中の数値にカンマ、ドル記号、山カッコ(負の値を囲む)、または先行ゼロを追加する には、書式モデルを使用します。値を一定の小数桁数まで丸めたり、負の値の右側(左側で なく)にマイナス記号を表示したり、指数表記で値を表示することもできます。
単一の列に複数の書式モデルを使用するには、使用するモデルを結合して1つのCOLUMN コマンドにします(例4-4を参照)。書式モデルのすべてのリストおよび詳細は、第8章の
「COLUMN」コマンドを参照してください。
例 例例
例4-4 NUMBER列の書式設定列の書式設定列の書式設定列の書式設定
SALの表示にをドル記号やカンマを使用し、ゼロ値に空白ではなく数字のゼロを表示するに は、次のコマンドを入力します。
SQL> COLUMN SAL FORMAT $99,990
この時点で、現行の問合せを再実行します。
SQL> /
問合せ結果は、次のように出力されます。
Employee
Department Name Salary Commission --- 30 ALLEN $1,600 300 30 WARD $1,250 500 30 MARTIN $1,250 1400 30 TURNER $1,500 0
ドル記号などの他の書式を使用しているときに、ゼロ値に空白ではなくゼロを表示する場合 は、前述のように書式モデル内でゼロを使用してください。
データ型の書式設定 データ型の書式設定 データ型の書式設定 データ型の書式設定
データ型を表示する場合は、SQL*Plusのデフォルトの表示幅を使用するか、または
COLUMNコマンドを使用してデフォルトの表示幅を変更できます。このマニュアルでは、
データ型に次の変数が含まれます。
■ CHAR
■ NCHAR
■ VARCHAR2(VARCHAR)
■ NVARCHAR2(NCHAR VARYING)
■ DATE
■ LONG
■ CLOB
■ NCLOB
デフォルトの表示 デフォルトの表示 デフォルトの表示 デフォルトの表示
データ型列のデフォルトの幅は、データベース内の列の幅です。
SQL*Plusでは書式が設定されていないDATE列のデフォルトの幅および書式は、効力を
持っているNLSパラメータから得られます。それ以外の場合、デフォルトの書式の幅はA9 です。DATE列の書式の詳細は、第8章の「COLUMN」コマンドのFORMAT句を参照し てください。
注意 注意注意
注意: 書式モデルは、新しい書式モデルを入力するか、列の書式をリ セットするか、またはSQL*Plusを終了するまで有効です。
注意 注意注意
注意: NCHAR、NVARCHAR2(NCHAR VARYING)、CLOBおよび
NCLOBの各データ型を使用するには、Oracle8以上が必要です。
注意 注意注意
注意: データ型のデフォルトの文字位置は、左揃えです。
デフォルト表示の変更 デフォルト表示の変更 デフォルト表示の変更 デフォルト表示の変更
データ型またはDATEの表示幅は、COLUMNコマンドと、文字A(英数字の意)の後に列 幅を表した数値を続けた書式モデルを使用することによって変更できます。
COLUMNコマンドの中で、書式を設定する列および使用するモデルを次のように指定しま
す。
COLUMN column_name FORMAT model
列ヘッダーより短い幅を指定した場合は、ヘッダーが切り捨てられます。LONG、CLOBま
たはNCLOBのいずれかの列に幅を指定した場合は、LONGCHUNKSIZE、または指定した
幅のどちらか小さい方が列幅として使用されます。詳細は、第8章の「COLUMN」コマン ドを参照してください。
例 例例
例4-5 文字列の書式設定文字列の書式設定文字列の書式設定文字列の書式設定
列ENAMEの幅を4文字に設定し、現行の問合せを再実行するには、次のように入力しま
す。
SQL> COLUMN ENAME FORMAT A4 SQL> /
問合せ結果は、次のように出力されます。
Empl
Department Name Salary Commission ---- 30 ALLE $1,600 300 N
30 WARD $1,250 500 30 MART $1,250 1400 IN
30 TURN $1,500 0 ER
SETコマンドのWRAP変数をON(デフォルト値)に設定した場合、従業員名は例4-5に示 すように、4文字目の後で次の行へ折り返されます。WRAPをOFFに設定した場合、名前 は4文字目の後で切り捨てられます。
注意 注意注意
注意: 書式モデルは、新しい書式モデルを入力するか、列の書式をリ セットするか、またはSQL*Plusを終了するまで有効です。
システム変数WRAPは、すべての列を制御します。ある列についてのWRAPの設定は、
COLUMNコマンドのWRAPPED、WORD_WRAPPEDおよびTRUNCATED句を指定する
ことによって上書きできます。これらの句の詳細は、第8章の「COLUMN」コマンドを参 照してください。この章の後半でCOLUMNコマンドのWORD_WRAPPEDを使用します。
この時点で、次のように列を元の書式に戻します。
SQL> COLUMN ENAME FORMAT A10
列の表示属性のコピー 列の表示属性のコピー 列の表示属性のコピー 列の表示属性のコピー
複数の列に同じ表示属性を設定する場合は、COLUMNコマンドのLIKE句を使用すると、
入力するコマンドを減らすことができます。LIKE句は、前に定義した列の表示属性を新し い列にコピーするようSQL*Plusに指示します。ただし、同じコマンドの別の句によって加 えられた変更はコピーされません。
例例例
例4-6 列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー列の表示属性のコピー
列COMMに、SALに指定した表示属性と同じ表示属性を指定し、別のヘッダーを指定する には、次のコマンドを入力します。
SQL> COLUMN COMM LIKE SAL HEADING Bonus 次のように問合せを再実行します。
SQL> /
問合せ結果は、次のように出力されます。
Employee
Department Name Salary Bonus 30 ALLEN $1,600 $300 30 WARD $1,250 $500 30 MARTIN $1,250 $1,400 30 TURNER $1,500 $0
注意 注意注意
注意: 列のヘッダーは、WRAPの設定、またはどのCOLUMNコマンド 句の設定にも関係なく切り捨てられます。
列の表示属性のリスト表示およびリセット 列の表示属性のリスト表示およびリセット 列の表示属性のリスト表示およびリセット 列の表示属性のリスト表示およびリセット
ある列の現行の表示属性をリスト表示するには、次に示すようにCOLUMNコマンドと、そ の後に列名のみを指定します。
COLUMN column_name
すべての列の現行の表示属性をリスト表示するには、次のように、後ろに列名または句を指
定せずにCOLUMNコマンドを入力します。
COLUMN
列の表示属性をデフォルト値にリセットするには、次に示すようにCOLUMNコマンドの
CLEAR句を使用します。
COLUMN column_name CLEAR
すべての列の属性をリセットするには、CLEARコマンドのCOLUMNS句を使用します。
例 例例
例4-7 列の表示属性をデフォルトにリセットする方法列の表示属性をデフォルトにリセットする方法列の表示属性をデフォルトにリセットする方法列の表示属性をデフォルトにリセットする方法
すべての列の表示属性をデフォルトにリセットするには、次のコマンドを入力します。
SQL> CLEAR COLUMNS columns cleared
列の表示属性の抑止および復元 列の表示属性の抑止および復元 列の表示属性の抑止および復元 列の表示属性の抑止および復元
特定の列に指定した表示属性の抑止および復元ができます。列の表示属性を抑止するには、
次の形式でCOLUMNコマンドを入力します。
COLUMN column_name OFF
OFF句は、列にデフォルトの表示属性を使用するようSQL*Plusに指示しますが、
COLUMNコマンドで定義された属性は削除しません。COLUMNコマンドで定義した属性
を復元するには、次のようにON句を使用します。
COLUMN column_name ON