개발자

ORACLE TABLE 레이아웃 조회 SQL

쿠카곰돌이 2020. 6. 19. 01:45
반응형

-- 테이블 조회 SQL
SELECT A.TABLE_NAME
     , A.COMMENTS
     , B.COLUMN_NAME
     , B.DATA_TYPE ||
                (CASE WHEN B.DATA_TYPE IN ('CHAR', 'VARCHAR2', 'NVARCHAR') THEN '(' || B.DATA_LENGTH || ')'
                      WHEN B.DATA_TYPE = 'NUMBER' AND B.DATA_SCALE = 0 AND  B.DATA_PRECISION IS NOT NULL THEN '(' || B.DATA_PRECISION || ')'
                      WHEN B.DATA_TYPE = 'NUMBER' AND B.DATA_SCALE <> 0 THEN '(' || B.DATA_PRECISION || ',' || B.DATA_SCALE || ')' END
                ) AS DATA_TYPE
                ,DECODE(B.NULLABLE,  'Y', 'N',  'N', 'Y') AS NOTNULL
                ,C.COMMENTS
                , CASE WHEN E.COLUMN_POSITION IS NOT NULL THEN 'PK' ELSE '' END AS PRIMARY_KY
                , E.COLUMN_POSITION
  FROM user_tab_comments A
     , USER_TAB_COLS B
     , USER_COL_COMMENTS C
     , user_constraints D
     , USER_IND_COLUMNS E
 WHERE A.TABLE_NAME  = B.TABLE_NAME
   AND B.TABLE_NAME  = C.TABLE_NAME
   AND B.COLUMN_NAME = C.COLUMN_NAME
   AND A.TABLE_NAME  = D.TABLE_NAME
   AND D.CONSTRAINT_TYPE ='P'
   AND D.CONSTRAINT_NAME = E.INDEX_NAME(+)
   AND B.TABLE_NAME  = E.TABLE_NAME(+)
   AND B.COLUMN_NAME = E.COLUMN_NAME(+)
   --AND A.TABLE_NAME='BM_COMM_CLSS_CD'
ORDER BY A.TABLE_NAME, B.COLUMN_ID;

 

반응형