본문 바로가기
DEV_STUDY/WEB_DEV

오라클 | 테이블명세 확인

by 도태된닝겐 2025. 2. 23.
반응형

테이블 명세 확인하는 쿼리

SELECT C.OWNER
     , A.TABLE_NAME
     , REPLACE(REPLACE(D.COMMENTS,CHR(13),''),CHR(10),'') AS TAB_COMMENTS
    -- , A.COLUMN_ID
     , A.COLUMN_NAME
     , REPLACE(REPLACE(B.COMMENTS,CHR(13),''),CHR(10),'') AS COL_COMMENTS
     , A.DATA_TYPE ||
      (CASE WHEN DATA_TYPE LIKE '%CHAR%'THEN
                '(' || DATA_LENGTH || ')'
            WHEN DATA_TYPE = 'NUMBER' AND DATA_PRECISION > 0 AND DATA_SCALE > 0 THEN
                '(' || DATA_PRECISION || ',' || DATA_SCALE || ')'
            WHEN DATA_TYPE = 'NUMBER' AND DATA_PRECISION > 0 THEN
                '(' || DATA_PRECISION || ')'
       END) DATA_TYPE
     , CASE WHEN E.COLUMN_NAME IS NOT NULL THEN 'Y' ELSE 'N' END AS PK_YN
     , DECODE(NULLABLE, 'N', 'N') NULLABLE
FROM ALL_ALL_TABLES  C
LEFT  JOIN  ALL_TAB_COMMENTS D
        ON  C.OWNER      = D.OWNER
       AND  C.TABLE_NAME = D.TABLE_NAME
INNER JOIN  ALL_TAB_COLUMNS  A
        ON  C.OWNER      = A.OWNER
       AND  C.TABLE_NAME = A.TABLE_NAME
LEFT  JOIN  ALL_COL_COMMENTS B
        ON  A.OWNER       = B.OWNER
       AND  A.TABLE_NAME  = B.TABLE_NAME
       AND  A.COLUMN_NAME = B.COLUMN_NAME
LEFT  JOIN (
            SELECT A.OWNER
                 , A.TABLE_NAME
                 , A.CONSTRAINT_NAME
                 , B.COLUMN_NAME     
                 , B.POSITION
            FROM DBA_CONSTRAINTS  A
            INNER JOIN DBA_CONS_COLUMNS B
                    ON A.CONSTRAINT_TYPE = 'P' 
                   AND A.OWNER           = B.OWNER
                   AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
)  E
        ON  A.OWNER = E.OWNER
       AND  A.TABLE_NAME = E.TABLE_NAME
       AND  A.COLUMN_NAME = E.COLUMN_NAME
WHERE C.owner = '스키마'

하기 결과값처럼 나옴!

테이블명세

일하다 보면 상사분들이 가끔 테이블 명세좀 뽑아봐~

아니면 다른팀에서 요청들어올때 저 쿼리 사용하면 된다!

반응형