SQL*Plusでselect結果のカラム幅を狭くする

SQL*Plusでselect文を発行すると、デフォルトではカラムで定義されているバイト数分カラム幅を確保します。つまり「VARCHAR2(128)」と定義されているカラムなら128文字になるまで半角空白を付加します。
この無駄な空白を削除する方法です。COLUMN フォーマットを使用します。
※SQLを変更しtrim関数を使うなどしてカラムの内容を編集しても同じ結果は得られますが、COLUMN フォーマットを指定するほうが簡単でスマートでしょう。

COLUMN column_name FORMAT format_string
COL column_name FOR format_string
COL column_name FOR aXX (XX部分は桁数)

※大文字でも小文字でも可。「COLUMN」「FORMAT」はそれぞれ「COL」「FOR」と省略可。

format_stringの「aXX」の形式は文字列系の型と日時系の型で使用できます。数値系の型の場合は不必要な大きな桁数を確保でもしていない限り、フォーマットを指定する必要性は少ないと思います。ですので、これだけ把握しておくだけでもいいかと思います。

数値系の型の場合、format_stringには「aXX」は使えません。代わりに「9,999,999.99」のような形式で指定します。詳しくはこちら「SQL*Plusで数値型の出力フォーマットを変更する」を参照してください。

また、指定した桁数を超えてしまった場合にはデフォルトでは改行して複数行で表示されます。切り捨てて1行で表示するように指定することも出来ます。
COL column_name FORMAT AXX TRUNCATED
COL column_name FORMAT AXX TRU

使用例
COL TABLE_NAME FOR A25
COL VIEW_NAME FOR A25 TRN

作成:2011/11/06
更新:2016/05/23