본문 바로가기

Oracle/COLUMN FORMAT

COLUMN FORMAT

한개의 컬럼의 사이즈를 제한해 주면서 출력하지 않으면 내용을 파악하기 어려운 경우가 있다. 다음과 같은 경우를 예로 들어보자. 컬럼의 사이즈를 제한하지않고 출력한 경우 아래처럼 내용을 파악하기가 어려워진다.

SQL> select  LPAD(' ', (level-1)*2, ' ') || ename as 이름, mgr, sal from emp start with ename='KING'
 connect by prior empno=mgr;

이름
--------------------------------------------------------------------------------
       MGR        SAL
---------- ----------
KING
                 5000

  JONES
      7839       2975

    SCOTT
      7566       3000


이름
--------------------------------------------------------------------------------
       MGR        SAL
---------- ----------
      ADAMS
      7788       1100

    FORD
      7566       3000

      SMITH
      7902        800


이름
--------------------------------------------------------------------------------
       MGR        SAL
---------- ----------
  BLAKE
      7839       2850

    ALLEN
      7698       1600

    WARD
      7698       1250


이름
--------------------------------------------------------------------------------
       MGR        SAL
---------- ----------
    MARTIN
      7698       1250

    TURNER
      7698       1500

    JAMES
      7698        950


이름
--------------------------------------------------------------------------------
       MGR        SAL
---------- ----------
  CLARK
      7839       2450

    MILLER
      7782       1300


14 개의 행이 선택되었습니다.

SQL>

아래처럼 컬럼의 사이즈를 20으로 정해주면 훨씬 내용파악이 쉬워진다.

SQL> col 이름 format a20; // 숫자컬럼일 경우는 col empno format 9999 와 같이 설정한다
SQL> select  LPAD(' ', (level-1)*2, ' ') || ename as 이름, mgr, sal from emp start with ename='KING'
 connect by prior empno=mgr;

이름                        MGR        SAL
-------------------- ---------- ----------
KING                                  5000
  JONES                    7839       2975
    SCOTT                  7566       3000
      ADAMS                7788       1100
    FORD                   7566       3000
      SMITH                7902        800
  BLAKE                    7839       2850
    ALLEN                  7698       1600
    WARD                   7698       1250
    MARTIN                 7698       1250
    TURNER                 7698       1500

이름                        MGR        SAL
-------------------- ---------- ----------
    JAMES                  7698        950
  CLARK                    7839       2450
    MILLER                 7782       1300

14 개의 행이 선택되었습니다.

숫자 컬럼에 a20 과 같이 문자포맷을 설정하면 아래와 같이 # 기호로 표시된다.
SQL> col mgr format a4;
SQL> select * from emp;

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7369 SMITH      CLERK     ########## 80/12/17        800                    20
      7499 ALLEN      SALESMAN  ########## 81/02/20       1600        300         30
      7521 WARD       SALESMAN  ########## 81/02/22       1250        500         30
      7566 JONES      MANAGER   ########## 81/04/02       2975                    20
      7654 MARTIN     SALESMAN  ########## 81/09/28       1250       1400         30
      7698 BLAKE      MANAGER   ########## 81/05/01       2850                    30
      7782 CLARK      MANAGER   ########## 81/06/09       2450                    10
      7788 SCOTT      ANALYST   ########## 87/04/19       3000                    20
      7839 KING       PRESIDENT            81/11/17       5000                    10
      7844 TURNER     SALESMAN  ########## 81/09/08       1500          0         30
      7876 ADAMS      CLERK     ########## 87/05/23       1100                    20
      7900 JAMES      CLERK     ########## 81/12/03        950                    30
      7902 FORD       ANALYST   ########## 81/12/03       3000                    20
      7934 MILLER     CLERK     ########## 82/01/23       1300                    10

14 개의 행이 선택되었습니다.

위와같은 경우에는 다시 해당 컬럼의 포맷을 숫자포맷으로 변경해 주면 된다.

col mgr format 9999<enter>