【Oracle SQL*Plus】SELECT書式変更(表示幅):COLUMN(COL)コマンド

雑学

備忘録になります。

前提知識

  • デフォルトの書式は各項目定義に依存する。
  • 項目名に対して書式を定める。テーブルが異なっていても同一項目名ならCOLUMNコマンドで設定した書式が使われる。
  • SELECTで指定した項目がCOLUMNコマンドにより書式設定されていても、異なる型の書式であれば採用されない。

書式変更:数値項目(NUMBER)

「COLUMN 項目名 FORMAT 999」※9の数+1が幅になる

SQL> DESC TEST_TABLE1;
 名前                                    NULL?    型
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(10)
 NAME                                               VARCHAR2(10)
 VAL1                                               NUMBER(10)
 VAL2                                               VARCHAR2(10)

SQL> SELECT * FROM TEST_TABLE1;

        ID NAME             VAL1 VAL2
---------- ---------- ---------- ----------
         1 NAME-A              1 A
         2 NAME-B              2 B
         3 NAME=C              3 C

SQL> COLUMN ID FORMAT 999
SQL> SELECT * FROM TEST_TABLE1;

  ID NAME             VAL1 VAL2
---- ---------- ---------- ----------
   1 NAME-A              1 A
   2 NAME-B              2 B
   3 NAME=C              3 C

SQL> COLUMN ID FORMAT 9
SQL> SELECT * FROM TEST_TABLE1;

ID NAME             VAL1 VAL2
-- ---------- ---------- ----------
 1 NAME-A              1 A
 2 NAME-B              2 B
 3 NAME=C              3 C

指定した値より1文字分の余白が用意されているのは、マイナス(-)表示用の枠のようです。

書式変更:文字列(VARCHAR2)

「COLUMN 項目名 FORMAT A6」※A6なら6文字分の幅、A10なら10文字分の幅です。

SQL> DESC TEST_TABLE1;
 名前                                    NULL?    型
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(10)
 NAME                                               VARCHAR2(10)
 VAL1                                               NUMBER(10)
 VAL2                                               VARCHAR2(10)

SQL> SELECT * FROM TEST_TABLE1;

        ID NAME             VAL1 VAL2
---------- ---------- ---------- ----------
         1 NAME-A              1 A
         2 NAME-B              2 B
         3 NAME=C              3 C

SQL> COLUMN NAME FORMAT A6
SQL> SELECT * FROM TEST_TABLE1;

        ID NAME         VAL1 VAL2
---------- ------ ---------- ----------
         1 NAME-A          1 A
         2 NAME-B          2 B
         3 NAME=C          3 C

書式クリア

「COLUMN 項目名 CLEAR」

SQL> SELECT * FROM TEST_TABLE1;

        ID NAME         VAL1 VAL2
---------- ------ ---------- ----------
         1 NAME-A          1 A
         2 NAME-B          2 B
         3 NAME=C          3 C

SQL> COLUMN NAME CLEAR
SQL> SELECT * FROM TEST_TABLE1;

        ID NAME             VAL1 VAL2
---------- ---------- ---------- ----------
         1 NAME-A              1 A
         2 NAME-B              2 B
         3 NAME=C              3 C

参考リンク

関連記事