この記事ではSQL*PlusでLONG型のデータが途切れて表示される場合の対処法について解説します。
SQL*PlusでLONG型のデータが途切れて表示される
dba_viewsのTEXT列などLONG型で定義されているデータをSQL*Plusで抽出した場合に、データが途切れて表示される場合があります。
SQL> select text from dba_views where rownum < 2;
TEXT
--------------------------------------------------------------------------------
select "LIB_IDX","LIB_NAME","VENDOR_NAME","PROTOCOL_NUM","VERSION_NUM","PATH_NAM
これはデフォルトではLONG型のデータは80バイトしか表示されないように設定されているためです。
データを全て表示したい場合はこれを拡張してあげる必要があります。
LONG型データの表示幅を拡張する方法
SQL*PlusでLONG型のデータの表示幅を拡張するにはSET LONGコマンドを使用します。
SET LONG n の形で使用して、nには表示するバイト数を指定します。
LONG型データの表示幅を10000バイトにしてSQLを実行します。
SQL> set long 10000
SQL> select text from dba_views where rownum < 2;
TEXT
--------------------------------------------------------------------------------
select "LIB_IDX","LIB_NAME","VENDOR_NAME","PROTOCOL_NUM","VERSION_NUM","PATH_NAME","MAP_FILE","FILE_CFGID","MAP_ELEM","ELEM_CFGID","MAP_SYNC","CON_ID" from v$map_library
データが途切れずに表示されるようになりました。