sqlplus set line

sqlplus のシステム変数 linesize で、表示される結果行のサイズ(横幅)を変更できる。
頻繁に利用されている「今さら聞けない」系の基本コマンド。

select する項目のカラム数が多い場合や、カラム長が巨大な場合など、
結果が2行以上に折り返しになってしまうので、データ件数が少なくても
SQL*Plus ではかなり見づらくなってしまう。

Object Browser や CSE などのツールには及ばないが、linesize をはじめ
SET コマンドを駆使することで出力フォーマッドの見栄えはかなり良くなる。

※ コマンドプロンプトや Tera Term などの表示幅も適宜修正のこと。



構文

SET LIN[ESIZE] { 80 | n }

※ [] 内は、省略可能。

デフォルトの場合

SQL> show linesize
linesize 80

→ 80 バイトであることがわかる。

例)任意のクエリを実行

SQL> select group#, thread#, sequence#, bytes/1024/1024 mbyte,
     members, archived, status, first_time from v$log;

    GROUP#    THREAD#  SEQUENCE#      MBYTE    MEMBERS ARCHIV
---------- ---------- ---------- ---------- ---------- ------
STATUS                           FIRST_TI
-------------------------------- --------
         1          1        298         50          2 NO
INACTIVE                         10-02-12

         2          1        299         50          2 NO
CURRENT                          10-02-12

         3          1        297         50          2 NO
INACTIVE                         10-02-11

→ 行が折り返されているため、見栄えが良くない。
カラム幅は列サイズによって自動調整されるため、必ずしも指定サイズで
折り返されるとは限らない。

・サイズ変更( 80 → 120 )

SQL> set linesize 120

・変更を確認

SQL> show linesize
linesize 120

・クエリー再実行

SQL> select group#, thread#, sequence#, bytes/1024/1024 mbyte,
  2  members, archived, status, first_time from v$log;

    GROUP#    THREAD#  SEQUENCE#      MBYTE    MEMBERS ARCHIV STATUS   FIRST_TI
---------- ---------- ---------- ---------- ---------- ------ -------- --------
         1          1        298         50          2 NO     INACTIVE 10-02-12
         2          1        299         50          2 NO     CURRENT  10-02-12
         3          1        297         50          2 NO     INACTIVE 10-02-11

※ 表示幅の制約上、カラム毎の余分なスペースは、別途(set column)で省いている。