SQL*PlusでLONG型のデータが途切れて表示される

この記事では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

データが途切れずに表示されるようになりました。