sql 컬럼 조정

2013.03.18 15:27


sql 컬럼 조정으로 화면을 보기 좋게 만들기


SQL 쿼리 작업을 하다보면 결과물이 한줄로 나오지 않고 여러 줄에 걸쳐 나오기 때문에 한 눈에 보기 나쁜 경우가 많다. 

SQL> SELECT B.FILE#, B.STATUS, D.NAME FILENAME, T.NAME TABLESPACE 

  2 FROM V$BACKUP B, V$DATAFILE D, V$TABLESPACE T WHERE B.FILE# = D.FILE#
  3 AND D.TS# = T.TS# ORDER BY TABLESPACE, FILENAME;
     FILE# STATUS
---------- ------------------
FILENAME
--------------------------------------------------------------------------------
TABLESPACE
------------------------------
         5 NOT ACTIVE
/dev_dat/rnd_data01.dbf
RND_DATA
         6 NOT ACTIVE
/dev_idx/rnd_index01.dbf
RND_INDEX


쿼리 결과가 이렇게 나올 때 단순히 내용 확인만 할 경우는 상관없지만, 

보고서에 포함시키기 위해서 편집 해야 할 필요가 있다. 


화면에 보이는 라인의 길이는 linesize로 조절한다. 

SQL> show linesize

linesize 80


디폴트값 80으로 설정되어 있는 상태이다. 


set 명령어로 linesize를 늘릴 수 있다. 


SQL> set linesize 160 

SQL> /

     FILE# STATUS
---------- ------------------
FILENAME
----------------------------------------------------------------------------------------------------------------------------------------------------------------
TABLESPACE
------------------------------
         5 NOT ACTIVE
/dev_dat/rnd_data01.dbf
RND_DATA
         6 NOT ACTIVE
/dev_idx/rnd_index01.dbf
RND_INDEX


콘솔에서 볼 수 있는 라인의 폭은 늘어났지만, 여전히 보고서를 쓰기에는 적절하지 않다. 

컬럼 중에서 FILENAME이 너무 길게 설정되어 있다. 


FILENAME 컬럼 폭을 조절해 본다. 

SQL> col filename format a20  ==> 컬럼의 폭을 조정
SQL> /
     FILE# STATUS             FILENAME             TABLESPACE
---------- ------------------ -------------------- ------------------------------
         5 NOT ACTIVE         /dev_dat/rnd_data01. RND_DATA
                              dbf
         6 NOT ACTIVE         /dev_idx/rnd_index01 RND_INDEX
                              .dbf
         2 NOT ACTIVE         /dev_dat/DEV/sysaux0 SYSAUX
                              1.dbf
         1 NOT ACTIVE         /dev_dat/DEV/system0 SYSTEM
                              1.dbf
     FILE# STATUS             FILENAME             TABLESPACE
---------- ------------------ -------------------- ------------------------------
         3 NOT ACTIVE         /dev_dat/DEV/undotbs UNDOTBS1;
                              01.dbf
         4 NOT ACTIVE         /dev_dat/DEV/users01 USERS

                              .dbf


a20은 너무 작은 값인가보다. 두 줄에 걸쳐 보인다. 값을 조금 더 늘려 준다. 

그리고 설정하는 김에 제목 줄이 중간에 반복되는 걸 없애기 위해서 pagesize도 변경해 준다. 


SQL> col filename format a30

SQL> set pagesize 100

SQL> r

  1  SELECT B.FILE#, B.STATUS, D.NAME FILENAME, T.NAME TABLESPACE

  2  FROM V$BACKUP B, V$DATAFILE D, V$TABLESPACE T WHERE B.FILE# = D.FILE#

  3* AND D.TS# = T.TS# ORDER BY TABLESPACE, FILENAME


     FILE# STATUS             FILENAME                       TABLESPACE

---------- ------------------ ------------------------------ ----------------------

         5 NOT ACTIVE         /dev_dat/rnd_data01.dbf        RND_DATA

         7 NOT ACTIVE         /dev_dat/rnd_data02.dbf        RND_DATA

         8 NOT ACTIVE         /dev_dat/rnd_data03.dbf        RND_DATA

         9 NOT ACTIVE         /dev_dat/rnd_data04.dbf        RND_DATA

         6 NOT ACTIVE         /dev_idx/rnd_index01.dbf       RND_INDEX

         2 NOT ACTIVE         /dev_dat/DEV/sysaux01.dbf      SYSAUX

         1 NOT ACTIVE         /dev_dat/DEV/system01.dbf      SYSTEM

         3 NOT ACTIVE         /dev_dat/DEV/undotbs01.dbf     UNDOTBS1

         4 NOT ACTIVE         /dev_dat/DEV/users01.dbf       USERS


9 rows selected.



이제 제대로 보인다.  ^^

 


 


또루아빠 SQL(오라클,mysql) , , , ,