OracleDB:画面表示を調整したい

今回はsqlplusでselectなどを行った際の画面表示の整え方を見ていきます。
いくつか覚えるだけで、使い勝手がかなり変わります。


素の状態

画面表示に関する調整を何も行っていない場合、以下のように、読めなくはないものの、かなり見づらい状態になります。

select JOBNAME, USERNAME, MESSAGE from TEST_TABLE where JOBNAME = 'Test Job';

SQL> select JOBNAME, USERNAME, MESSAGE from TEST_TABLE where JOBNAME = 'Test Job';

JOBNAME
----------------------------------------------------------------
USERNAME
--------------------------------------------------------------------------------
MESSAGE
--------------------------------------------------------------------------------
Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

JOBNAME
----------------------------------------------------------------
USERNAME
--------------------------------------------------------------------------------
MESSAGE
--------------------------------------------------------------------------------

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER

JOBNAME
----------------------------------------------------------------
USERNAME
--------------------------------------------------------------------------------
MESSAGE
--------------------------------------------------------------------------------
Test Job:  TEST_USER: Test Job done

Test Job

JOBNAME
----------------------------------------------------------------
USERNAME
--------------------------------------------------------------------------------
MESSAGE
--------------------------------------------------------------------------------
TEST_USER
Test Job:  TEST_USER: Test Job done

5 rows selected.

SQL>


ページサイズの調整

set pagesize <変更後の値>

ページサイズを変更すると、出力結果のページ切り替え位置が変更され、変な位置でページが変わってカラム名が差し込まれる状態が解消します。

結果の途中にカラム名が差し込まれてもあまり意味はないので、適当に大きな値を設定するのがいいと思われます。

# ページサイズを変更
set pagesize 10000

# selectを実施
SQL> select JOBNAME, USERNAME, MESSAGE from TEST_TABLE where JOBNAME = 'Test Job';

JOBNAME
----------------------------------------------------------------
USERNAME
--------------------------------------------------------------------------------
MESSAGE
--------------------------------------------------------------------------------
Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

5 rows selected.

SQL>


ラインサイズの調整

set linesize <変更後の値>

ラインサイズは1行の表示幅(表示可能な文字数)を設定します。

今回の例示では特に効果がありませんが、システムメッセージなどで長い値の入ったレコードを確認するときには役立つと思われます。

# ページサイズを変更
set pagesize 10000

# ラインサイズを変更
set linesize 150

# selectを実施
SQL> select JOBNAME, USERNAME, MESSAGE from TEST_TABLE where JOBNAME = 'Test Job';

JOBNAME
----------------------------------------------------------------
USERNAME
------------------------------------------------------------------------------------------------------------------------------------------------------
MESSAGE
------------------------------------------------------------------------------------------------------------------------------------------------------
Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

Test Job
TEST_USER
Test Job:  TEST_USER: Test Job done

5 rows selected.

SQL>


カラムサイズの調整

col <カラム名> format a<変更後の値>

col は column の略です。

カラムサイズの変更によって、カラムごとに程よい表示幅にすることができます。視認性に優れた画面表示を実現する上で、これが特に重要です。

# ページサイズを変更
set pagesize 10000

# ラインサイズを変更
set linesize 150

# カラムサイズを変更
col JOBNAME format a15
col USERNAME format a30
col MESSAGE format a80

# selectを実施
SQL> select JOBNAME, USERNAME, MESSAGE from TEST_TABLE where JOBNAME = 'Test Job';

JOBNAME         USERNAME                       MESSAGE
--------------- ------------------------------ --------------------------------------------------------------------------------
Test Job        TEST_USER                      Test Job:  TEST_USER: Test Job done
Test Job        TEST_USER                      Test Job:  TEST_USER: Test Job done
Test Job        TEST_USER                      Test Job:  TEST_USER: Test Job done
Test Job        TEST_USER                      Test Job:  TEST_USER: Test Job done
Test Job        TEST_USER                      Test Job:  TEST_USER: Test Job done

5 rows selected.

SQL>


最後に

sqlplusの画面表示を整えることは、ちょっとしたことではありますが、コマンドラインでOracleDBの操作を行う上での寄与が大きいので、是非とも覚えておくべきだと思います。


いいなと思ったら応援しよう!