S-JIS[2008-02-15] 変更履歴

COLUMN

OracleSQL*PlusCOLUMNコマンドは、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コマンドの命令

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 '*'
set null '*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
col empno off
 
CLEAR CLE その項目の設定を全て削除する。
→全項目の設定を削除したい場合はCLEARコマンドでCOLUMNSを指定する。
col empno cle
clear col
 

参考:


書式

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
-----
あい
うえ
お

数値書式モデル(number format model)

col 項目名 format S999

文字 概要
書式 説明 表示
9 数値1桁を表す。 9999 数値4桁で表示する。 123 123
. 小数点を表す。 99.999 整数部2桁、小数部3桁で表示する。 1.23  1.230
, カンマ付き。 9,999 4桁を超えた数値のとき、カンマが表示される。 123
1234
123
1,234
0 0埋めする位置を表す。 0999
0009
0000
0埋めの4桁で表示する。 123
1234
0123
1234
9099 3桁まで0埋めして表示する。4桁は普通に出る。 1
12
1234
001
012
1234
S 符号(+-)を表す。 s999 +か-を常に表示する。 12
123
-12
+12
+123
-12
FM 左空白を削除する。
(左詰になるイメージ)
fm999 数値3桁で、左側の空白が(正符号分も)除去される。 1
123
-1
-123
1
123
-1
-123
B 値が0のときに何も表示しない。 b999   123
0
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を使用する。

参考:


SQL*Plusへ戻る / Oracle目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま