딕셔너리 테이블 조회나 퍼포먼스 뷰와 같이 칼럼은 많은데, 막상 확인할 레코드의 수는 적은 경우, 라인 사이즈 제약으로 줄바꿈이 일어나 보기 어려워지는 상황이 발생합니다.
(SET LINESIZE ???;) 구문으로 어느정도 해소할 수는 있지만 칼럼이 정말 많으면
이것도 해결책이 될 수 없습니다.

이를 효과적으로 해결해주는 iSQL구문이 있어 소개합니다.
제 뒤에 뒤에 계신 손연구원님께서 버그로 추가하신 기능이지만 그 편리함은 매우 큽니다.
몇달 전에 이 기능을 처음 알고, 너무 편리하고 좋다고 설레발을 쳤는데,
막상 손연구원님은 시크하게 반응하셨지만, 다시 생각해도 이 기능을 참으로 유용합니다.

제가 알기로 O사에서는 이러한 출력을 위해 사용자 정의 procedure등을 정의하는데,
막상 사용해보면 그리 편리하지 않습니다. ( http://asktom.oracle.com/tkyte/print_table/ 참고 )

반면 알티베이스 iSQL의 방식은 훨씬 간단하고 편리합니다.
참고로 이 기능은 5.3.1 릴리즈에 포함되어 있는 기능입니다.

간단한 예제를 보여드리겠습니다.
아래와 같이 V$DATATYPE에 INTEGER의 정보를 조회합니다.
예상하시겠지만 마구 줄바꿈이 일어나서 볼 수 없는 지경입니다.


iSQL> SET VERTICAL OFF;
iSQL> SELECT *
    2   FROM V$DATATYPE
    3  WHERE TYPE_NAME = 'INTEGER';
TYPE_NAME                                 DATA_TYPE   ODBC_DATA_TYPE
-------------------------------------------------------------------------
COLUMN_SIZE LITERAL_PREFIX  LITERAL_SUFFIX  CREATE_PARAM
-----------------------------------------------------------------------
NULLABLE    CASE_SENSITIVE SEARCHABLE  UNSIGNED_ATTRIBUTE FIXED_PREC_SCALE
---------------------------------------------------------------------------------
AUTO_UNIQUE_VALUE LOCAL_TYPE_NAME                           MINIMUM_SCALE
------------------------------------------------------------------------------
MAXIMUM_SCALE SQL_DATA_TYPE SQL_DATETIME_SUB NUM_PREC_RADIX INTERVAL_PRECISION
-------------------------------------------------------------------------------------
INTEGER                                   4           4
10
1           0           2           0           0
            INTEGER
            4                       10
1 row selected.

정말 난감하죠?
하지만 아래와 같이 SET VERTICAL ON;을 구문을 활용하면 훨씬 편하게 볼 수 있습니다.


iSQL> SET VERTICAL ON;
iSQL> SELECT *
    2   FROM V$DATATYPE
    3  WHERE TYPE_NAME = 'INTEGER';
TYPE_NAME          : INTEGER
DATA_TYPE          : 4
ODBC_DATA_TYPE     : 4
COLUMN_SIZE        : 10
LITERAL_PREFIX     :
LITERAL_SUFFIX     :
CREATE_PARAM       :
NULLABLE           : 1
CASE_SENSITIVE     : 0
SEARCHABLE         : 2
UNSIGNED_ATTRIBUTE : 0
FIXED_PREC_SCALE   : 0
AUTO_UNIQUE_VALUE  :
LOCAL_TYPE_NAME    : INTEGER
MINIMUM_SCALE      :
MAXIMUM_SCALE      :
SQL_DATA_TYPE      : 4
SQL_DATETIME_SUB   :
NUM_PREC_RADIX     : 10
INTERVAL_PRECISION :             

1 row selected.

자 어떤가요? ^^;
이 기능을 모르고 계셨다면, 앞으로 유용하게 사용하시기 바랍니다.