반응형

프로젝트를 하고나면 산출물로 나오는 문서중에 테이블 정의서를 자주 만들고는 합니다.

 

 

테이블 정의서를 만들기 위해서 테이블을 하나하나씩 찾아가서

 

 

COLUMN 과 COMMENT 를 복사해서 엑셀 문서에 붙여넣기를 하곤 하는데

 

 

앞으로는 그렇게 하지 말기 위해서 SQL 문을 작성해두었습니다.

 

 

아래 SQL 을 가공하여 사용하면 더 쉬운 문서 한벌이 만들어 질 수 있으니 고효율이 아닐까요

 

 

 

SELECT T1.TABLE_NAME
     , T3.COMMENTS AS TABLE_COMMENTS
     , T1.COLUMN_NAME
     , T2.COMMENTS AS COLUMN_COMMENTS
     , CASE WHEN T1.DATA_TYPE IN ('LONG', 'CLOB', 'DATE') THEN DATA_TYPE
            WHEN T1.DATA_TYPE = 'VARCHAR2' THEN DATA_TYPE || '(' || DATA_LENGTH || ' BYTE)'
            WHEN T1.DATA_TYPE = 'NUMBER'   THEN DATA_TYPE || '(' || DATA_LENGTH || ' BYTE)'
            ELSE T1.DATA_TYPE
             END AS DATA_TYPE
  FROM ALL_TAB_COLUMNS T1
 INNER JOIN USER_COL_COMMENTS T2
    ON T1.TABLE_NAME = T2.TABLE_NAME
   AND T1.COLUMN_NAME = T2.COLUMN_NAME   
 INNER JOIN USER_TAB_COMMENTS T3
    ON T1.TABLE_NAME = T3.TABLE_NAME
 WHERE OWNER = 'SCOTT'
   AND T1.TABLE_NAME = 'EMP'
 ORDER BY T1.TABLE_NAME, T1.COLUMN_ID

 

 

 

 

위의 SQL 만 놓고 보면 특정 한 개의 테이블을 조회를 하는것으로 보이지만

 

조회조건에서 TABLE_NAME 을 제거한다면

 

특정 스키마에 존재하는 테이블의 COLUMN 과 COMMENT, 그리고 DATA_TYPE 까지 한번에 조회할 수 있습니다.

 

테이블 정의서에 맞게 해당 SQL 을 가공하여 사용하면 시간을 조금이나마 아낄 수 있게 됩니다.

반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,