본문 바로가기
DB

[TIBERO] OWNER 별 테이블, 컬럼 조회하기

by place-g 2025. 3. 20.
반응형
WITH CONS_COL AS (
    SELECT C.OWNER
        , C.TABLE_NAME
        , C.CONSTRAINT_TYPE
        , C.CONSTRAINT_NAME
        , D.COLUMN_NAME
        , 'Y' FG
    FROM ALL_CONSTRAINTS C
        , ALL_CONS_COLUMNS D
    WHERE C.OWNER=D.OWNER 
        AND C.TABLE_NAME=D.TABLE_NAME 
        AND C.CONSTRAINT_NAME=D.CONSTRAINT_NAME 
        AND C.CONSTRAINT_TYPE IN('P','R')
)
SELECT A.OWNER
     , E.COMMENTS ENTITY_NAME
     , A.TABLE_NAME
     , B.COMMENTS ATTRIBUTE_NAME
     , A.COLUMN_NAME
     , C.FG PK_YN
     , D.FG FK_YN
     , DECODE(NULLABLE,'N','Y') NOTNULL_YN
     , DECODE(DATA_TYPE,'TIMESTAMP(6)','TIMESTAMP', DATA_TYPE) DATA_TYPE, COLUMN_ID+1
     , CASE WHEN DATA_TYPE ='NUMBER' AND DATA_PRECISION > 0 THEN DATA_PRECISION
            WHEN DATA_TYPE IN('VARCHAR','VARCHAR2','CHAR','NCHAR','NVARCHAR') THEN DATA_LENGTH
        END AS DATA_LENGTH
     , CASE WHEN DATA_TYPE ='NUMBER' AND DATA_PRECISION > 0 AND DATA_SCALE > 0 THEN DATA_SCALE END DATA_SCALE
     , DATA_DEFAULT
  FROM ALL_TAB_COLUMNS A
     , ALL_COL_COMMENTS B
     , CONS_COL C
     , CONS_COL D
     , ALL_TAB_COMMENTS E
 WHERE A.OWNER=B.OWNER AND A.TABLE_NAME=B.TABLE_NAME AND A.COLUMN_NAME=B.COLUMN_NAME
   AND A.OWNER=E.OWNER AND A.TABLE_NAME=E.TABLE_NAME
   AND A.OWNER=C.OWNER(+) AND A.TABLE_NAME=C.TABLE_NAME(+) AND C.CONSTRAINT_TYPE(+) ='P'
   AND A.COLUMN_NAME=C.COLUMN_NAME(+)
   AND A.OWNER=D.OWNER(+) AND A.TABLE_NAME=D.TABLE_NAME(+) AND D.CONSTRAINT_TYPE(+) ='R'
   AND A.COLUMN_NAME=D.COLUMN_NAME(+)
 ORDER BY A.OWNER
        , A.TABLE_NAME
        , A.COLUMN_ID
반응형