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の操作を行う上での寄与が大きいので、是非とも覚えておくべきだと思います。