SQL
SQLバッファからテキストが消去されます。複数のバッファを使用している場 合以外は、CLEAR SQLの働きはCLEAR BUFFERと同じです(付録Fの
「SET BUFFER」コマンドを参照)。
TIMI[NG]
TIMINGコマンドにより作成されたすべてのタイマーが削除されます。
例 例 例 例
ブレークを消去するには、次のように入力します。
SQL> CLEAR BREAKS
列定義を消去するには、次のように入力します。
SQL> CLEAR COLUMNS
COLUMN
用途 用途 用途 用途
特定の列について次のような表示属性を指定します。
■ 列ヘッダーのテキスト
■ 列ヘッダーの位置
■ NUMBERデータの書式
■ 列データの折返し
さらに、1つまたはすべての列の現行の表示属性をリスト表示します。
構文 構文 構文 構文
COL[UMN] [{column|expr} [option ...]]
option は、次のいずれかの句を表します。
ALI[AS] alias CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE {expr|alias}
NEWL[INE]
NEW_V[ALUE] variable NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
項および句 項および句 項および句 項および句
指定した列または式についてのみ現行の表示属性をリスト表示するには、columnまたはexpr のみを指定してCOLUMNを入力します(その他の句は使用しません)。現行のすべての列 表示属性をリスト表示するには、句を指定せずに、COLUMNを入力します。
項または句の詳細は、次の説明を参照してください。
{column|expr}
COLUMUNコマンドで、SQL SELECT コマンドの中のどのデータ項目を参照
するかを指示します(通常は列の名前)。COLUMNコマンドの中で式を使用 する場合は、SELECTコマンドの中での順序と同じ順序でexprを入力する必要 があります。たとえば、SELECTコマンドの中の式がa+bである場合、
COLUMNコマンドの中でSELECTコマンドの中の式を参照するときに、b+a
または(a+b)はいずれも使用できません。
異なる表から同じ名前の列を選択してある場合は、その列名を指定した
COLUMNコマンドは両方の列に適用されます。つまり、列ENAMEを対象と
するCOLUMNコマンドは、このセッションで参照するENAMEという名前
のすべての列に適用されます。COLUMNは、SELECTコマンドの表名接頭辞 を無視します。また、名前が二重引用符で囲まれている場合を除き、空白も無 視されます。
列を別々に書式設定するには、SELECTコマンド自体の中で各列にそれぞれ一 意の別名を割り当て(COLUMNコマンドのALIAS句は使用しないでくださ い)、各列の別名を指定してCOLUMNコマンドを入力します。
ALI[AS] alias
指定した別名が列に割り当てられます。この別名は、BREAKおよび
COMPUTE、他のCOLUMNコマンドの中でその列を参照するために使用でき
ます。
CLE[AR]
列の表示属性がデフォルト値にリセットされます。
すべての列の属性をリセットするには、CLEAR COLUMNSコマンドを使用し ます。CLEAR COLUMNSでは、該当の列のATTRIBUTEも消去されます。
FOLD_A[FTER]
列ヘッダーの後および列内の各行の後に、改行が挿入されます。SQL*Plusで は、SELECT構文のリスト内の最後の列の後には余分な改行は挿入されませ ん。
FOLD_B[EFORE]
列ヘッダーの前および列内の各行の前に、改行が挿入されます。SQL*Plusで は、SELECT構文のリスト内の最初の列の前には余分な改行は挿入されませ ん。
FOR[MAT] format
列の表示書式を指定します。フォーマット指定は、変数ではなく、A10または
$9.999などのテキスト定数である必要があります。
文字列文字列文字列
文字列 CHAR、NCHAR、VARCHAR2 (VARCHAR)およびNVARCHAR2
(NCHAR VARYING) 列のデフォルトの幅は、データベース内の列の幅です。
SQL*Plusは、これらのデータ型を左揃えで書式設定します。値が列幅に収ま
らない場合、SQL*Plusは、SET WRAPの設定に応じて、文字列を折り返すか 切り捨てます。
LONG列またはCLOB列、NCLOB列のデフォルトの幅は、SET
LONGCHUNKSIZEまたはSET LONGのいずれか小さい方の値です。
データ型の幅を、FORMAT An(Aは英数字)を使用してnに変更します。列 ヘッダーより短い幅を指定した場合は、ヘッダーが切り捨てられます。
LONG、CLOBまたはNCLOBのいずれかの列に幅を指定した場合は、
LONGCHUNKSIZE、または指定した幅のどちらか小さい方が列幅として使用 されます。
DATE列列列列 SQL*Plus内の書式未設定のDATE列のデフォルトの幅と書式は、
有効なNLSパラメータから導出されます。その他の場合、デフォルトの幅は A9です。Oracle8iでは、NLSパラメータは、データベース・パラメータ・
ファイル内で設定されることもあり、環境変数やそれに相当するプラット フォーム固有メカニズムであることもあります。また、NLSパラメータは、
ALTER SESSIONコマンドによって各セッションごとに指定することもできま
す(NLSパラメータの詳細は、Oracle8iのマニュアルを参照してください)。
SQL SELECT文の中でSQL関数TO_CHARを使用して、任意のDATE列の書
式を変更できます。明示的なCOLUMN FORMATコマンドを使用して、列幅 を調整することもできます。
Oracleでは、TO_CHARのようなSQL関数を使用するときに、非常に幅の広
い列が自動的に使用できるようになります。
DATE列の幅をnに変更するには、COLUMNコマンドでFORMAT Anを指定 します。列ヘッダーより短い幅を指定した場合、ヘッダーは切り捨てられま す。
NUMBER列列列列 NUMBER列の幅を変更するには、FORMATの後に、表8-1に 示す要素の1つを指定します。
表 表表
表8-1 数値書式数値書式数値書式数値書式 要素
要素要素
要素 例例例例 説明説明説明説明
9 9999 9の数は、戻される有効桁数を指定する。先行ゼロには空白が 表示される。ゼロの値にはゼロ(0)が表示される。
0 0999
9990
先行ゼロまたはこの桁のゼロの値は、0と表示される。
$ $9999 値の前にドル記号が付けられる。
B B9999 書式モデル内の「0」に関係なく、ゼロの値が空白で表示され
る。
MI 9999MI 負の値の後に「-」が表示される。正の値の場合は、後続空白が
表示される。
S S9999 正の値の場合は「+」、負の値の場合は、「-」が、この桁に戻さ
れる。
PR 9999PR 負の値は<山カッコ>で囲まれて表示される。正の値の場合
は、先行空白および後続空白が表示される。
D 99D99 この桁には、数値の整数部と小数部を区切る小数点文字が表示
される。
G 9G999 この桁には、桁グループ・セパレータが表示される。
C C999 この桁には、ISO通貨記号が表示される。
L L999 この桁には、各国通貨記号が表示される。
,(カンマ)(カンマ)(カンマ)(カンマ) 9,999 この桁にはカンマが表示される。
.(ピリオド)(ピリオド)(ピリオド)(ピリオド) 99.99 この桁には、数値の整数部と小数部を区切るピリオド(小数点)
が表示される。
V 999V99 値に10nを掛ける。nは、「V」の後の「9」の数です。
EEEE 9.999EEEE 値が科学表記法で表示される(書式には確実に4つの「E」を
含める必要がある)。
RNまたはまたはまたはまたはrn RN 大文字または小文字のローマ数字が表示される。値は1〜3999 の範囲内の整数。
DATE DATE 値がMM/DD/YY書式の日付として表示される。これは、ユリ
ウス暦日付を表すNUMBER列を書式設定するために使用され る。
MIおよびPR書式要素が使用できるのは、数値書式モデルの最後の桁のみで す。S書式要素が使用できるのは、最初または最後の桁のみです。
数値書式モデルにMI、SまたはPR書式が含まれていない場合、負の戻り値に は自動的に先行負記号が含まれ、正の値には自動的に先行空白が含まれます。
1つの数値書式モデルに挿入できる小数点文字(D)またはピリオド(.)は1 つのみです。ただし、桁グループ・セパレータ(G)またはカンマ(,)は、2 つ以上挿入できます。数値書式モデル内で、小数点文字またはピリオドより右 側に、桁グループ・セパレータまたはカンマを使用することはできません。
SQL*Plusは、NUMBERデータを右揃えで書式設定します。NUMBER列の幅
は、ヘッダーの幅か、FORMATの幅に符号用の1つの空白を加えた幅のどち らか大きい方に等しくなります。明示的にFORMATを使用しなかった場合、
列の幅は、必ずSET NUMWIDTHの値以上になります。
SQL*Plusは、NUMBERデータを書式設定またはフィールド幅に合わせて四捨
五入する場合があります。
値が列幅に収まらない場合、SQL*Plusは、その幅に相当する各桁にシャープ 記号(#)を表示することによって、オーバーフローを示します。
正の値が極端に大きく、数値の四捨五入の際に数値オーバーフローが発生する 場合は、値のかわりに無限大記号(〜)が表示されます。同様に、負の値が極 端に小さく、数値の四捨五入の際に数値オーバーフローが発生する場合は、値 のかわりに負の無限大記号(-〜)が表示されます。
HEA[DING] text
列ヘッダーを定義します。HEADING句を使用しなかった場合の、デフォルト の列ヘッダーは、columnまたはexprです。textに空白または句読点文字が含 まれている場合は、一重または二重引用符でそのテキストを囲む必要がありま す。HEADSEP文字(デフォルトでは「|」)が発生するたびに、新しい行が始 まります。
たとえば、次のように入力したとします。
COLUMN ENAME HEADING 'Employee |Name'
この場合は、2行の列ヘッダーが生成されます。HEADSEP文字の変更の詳細 は、この章の「SET」コマンドのHEADSEP変数を参照してください。
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
ヘッダーを整列させます。JUSTIFY句を使用しなかった場合、NUMBER列の ヘッダーのデフォルトはRIGHTで、その他の列型のヘッダーのデフォルトは
LEFTです。
LIKE {expr|alias}
他の列または式(他のCOLUMNコマンドですでに属性を定義してあるもの)
の表示属性がコピーされます。LIKEによってコピーされるのは、現行の
COLUMNコマンド内の他の句で定義されていない属性のみです。
NEWL[INE]
列の値を表示する前に新しい行を開始します。NEWLINEは、FOLD_BEFORE と同じ働きをします。
NEW_V[ALUE] variable
列値を保持する変数を指定します。この変数は、TTITLEコマンドの中で参照 できます。NEW_VALUEは、列値または日付を上部タイトルに表示するため に使用します。この列は、SKIP PAGEアクションを伴うBREAKコマンドに挿 入しておく必要があります。変数名にシャープ記号(#)は挿入できません。
NEW_VALUEは、ページごとに新しいマスター・レコードが使用されるマス
ター/ディテール・レポートに使用すると便利です。マスター/ディテール・
レポートを作成するには、ORDER BY句にもこの列を挿入しておく必要があり ます。この項の終わりに記載されている例を参照してください。
下部タイトルに列値を表示する方法の詳細は、この項のOLD_VALUEを参照 してください。タイトル内の変数の参照については、この章の終わりにある
「TTITLE」 コマンドを参照してください。書式設定および有効な書式モデルの 詳細は、「FORMAT」コマンドのFORMAT句を参照してください。