OracleのSQL*PlusのCOLUMNコマンドは、SQL*PlusでSELECTを実行した結果の
データ列ごとの表示方法(書式)を設定する。
略称はCOL。
指定 | 概要 | 例 |
---|---|---|
項目名と命令 | その項目の設定を変更する。 | col empno format S9999 |
項目名 | その項目の設定を表示する。 | col empno |
引数なし | 全項目の設定を表示する。 | col |
例)
項目名「empno」に何も書式が設定されていないとき(初期状態)↓
SQL> col empno SP2-0046: COLUMN 'empno'が定義されていません。 SQL> select empno,ename from emp where ename='SMITH'; EMPNO ENAME ---------- ---------- 7369 SMITH
項目名「empno」に数値の書式を設定してみた↓
SQL> col empno format s9999 SQL> r 1* select empno,ename from emp where ename='SMITH' EMPNO ENAME ----- ---------- +7369 SMITH
SQL> col empno
COLUMN empno ON
FORMAT s9999
「empno」という項目名でありさえすれば、どんなテーブルの項目でも指定した書式で表示される↓
SQL> select 123 as empno from dual; EMPNO ----- +123
SQL> select 123 empno from dual; EMPNO ----- +123
ただし「S9999」は数値書式なので、同じ項目名でも属性が数値以外の場合は意味を為さない↓
SQL> select '123' as empno from dual;
EMP
---
123
COLUMNに項目名を指定し、その後に命令(オプション)を書くことによって設定を行う。
「help col」で命令の一覧が表示される。
col 項目名 命令
col 項目名 命令 命令…
命令 | 概要 | 例 | ||
---|---|---|---|---|
FORMAT | FOR | 書式を設定する。 | col empno form s9999 |
SQL> select 123 empno from dual;
EMPNO
-----
+123
|
HEADING | HEA | SELECT結果のその項目の見出しを設定する。 | col empno head '番号' |
SQL> select 123 empno from dual;
番号
----------
123
|
JUSTIFY | JUS | その項目の見出しの位置を設定する。 (LEFT・CENTER・RIGHT) |
col empno just c |
SQL> select 123 empno from dual; EMPNO ---------- 123 |
NULL | NUL | その項目の値がnullの場合に表示する文字列を指定する。 →全項目への指定にはSET NULLを使う。 |
col empno null '*' |
SQL> select null empno from dual
E
-
*
|
TRUNCATED | TRU | 文字列データが指定された幅に収まらないときの動作を指定する。 TRUNCは右側を切り捨てる。WRAPとWORDは改行して続きを表示する。これらを指定しない場合のデフォルトはWRAP。 WRAPとWORDの違いは、文字列内に空白文字がある場合に生じる。WRAPはそのまま空白を表示し、WORDは先頭の空白を削除して表示する。 |
col s form a3 (文字列3桁を指定) |
|
col s trunc |
SQL> select 'a b c d' s from dual; S --- a b |
|||
WRAPPED | WRA | col s wrap |
SQL> select 'a b c d' s from dual; S --- a b c d |
|
WORD_WRAPPED | WOR | col s word |
SQL> select 'a b c d' s from dual; S --- a b c d |
|
PRINT NOPRINT |
PRI NOPRI |
その項目の表示有無を設定する。 NOPRINTにしておくと、SELECT対象にその項目を指定していても(*による全項目指定も含む)、その項目の列(データ値)は表示されなくなる。 |
col empno nopri |
SQL> select empno,ename from emp; ENAME ---------- SMITH 〜 |
LIKE | 別項目の設定をコピーしてくる。 以前定義されていた内容は全て消えて、コピー元項目の設定と同じになる。 この命令を実行した時点の設定がコピーされるので、後からコピー元項目の設定を変えてもこちらには反映されない。 |
col to like from |
||
ON OFF |
設定の有効/無効を切り替える。 OFFにしておくと、いくら設定をしても実行時に反映されない。 |
col empno on |
||
CLEAR | CLE | その項目の設定を全て削除する。 →全項目の設定を削除したい場合はCLEARコマンドでCOLUMNSを指定する。 |
col empno cle |
参考:
formatの後ろに書式を指定する。
col 項目名 format An
formatで「A」と桁数(バイト数)を指定すると、文字列データに対する最大桁数指定になる。
データがこの桁数を超えると、切り捨てられたり(→TRUNCATE)改行したり(→WRAP)して表示される。
SQL> col test form a5 SQL> select '1234567' test from dual; TEST ----- 12345 67
SQL> select 'あいうえお' test from dual; TEST ----- あい うえ お
col 項目名 format S999
文字 | 概要 | 例 | |||
---|---|---|---|---|---|
書式 | 説明 | 値 | 表示 | ||
9 | 数値1桁を表す。 | 9999 | 数値4桁で表示する。 | 123 |
123 |
. | 小数点を表す。 | 99.999 | 整数部2桁、小数部3桁で表示する。 | 1.23 |
1.230 |
, | カンマ付き。 | 9,999 | 4桁を超えた数値のとき、カンマが表示される。 | 123 |
123 |
0 | 0埋めする位置を表す。 | 0999 0009 0000 |
0埋めの4桁で表示する。 | 123 |
0123 |
9099 | 3桁まで0埋めして表示する。4桁は普通に出る。 | 1 |
001 |
||
S | 符号(+-)を表す。 | s999 | +か-を常に表示する。 | 12 |
+12 |
FM | 左空白を削除する。 (左詰になるイメージ) |
fm999 | 数値3桁で、左側の空白が(正符号分も)除去される。 | 1 |
1 |
B | 値が0のときに何も表示しない。 | b999 | 123 |
123 |
|
X | 十六進数1桁を表す。 | xxxx | 十六進数4桁で表示する。 | 255 |
ff |
0xxx | 十六進数4桁(0埋め)で表示する。 | 255 |
00ff |
データが指定された桁数をオーバーした場合、ALL「#」が表示される。
SQL> col num form 999 SQL> select 123 num from dual; NUM ---- 123
SQL> select 1234 num from dual; NUM ---- ####
→全ての数値に対する(デフォルトの)書式設定をするにはSET NUMFORMATを使用する。
参考: