본문 바로가기
Web Programming/DB

[ORACLE, DB] OWNER, TABLE명, COLUMN명, TABLE COMMENT, COLUMN COMMENT 조회하기(오너명, 테이블명, 컬럼명, 테이블주석, 컬럼주석 조회)

by jaey0ng 2023. 4. 25.

OWNER명은 ALL_OBJECTS 테이블에서 조회

TABLE명은 USER_TABLES 테이블에서 조회

TABLE COMMENT는 USER_TAB_COMMENTS 테이블에서 조회

COLUMN, COLUMN COMMENT는 ALL_COL_COMMENTS 테이블에서 조회

 

이걸 이용해서 쿼리문을 만들면

SELECT O.OWNER                            -- 오너명
     , T.TABLE_NAME                       -- 테이블 명
     , TC.COMMENTS    AS TABLE_COMMENT    -- 테이블 코맨트(주석)
     , CC.COLUMN_NAME                     -- 컬럼 명
     , CC.COMMENTS    AS COLUMN_COMMENTS  -- 컬럼 코맨트(주석)
  FROM ALL_OBJECTS O
     , USER_TABLES T
     , USER_TAB_COMMENTS TC
     , ALL_COL_COMMENTS CC
 WHERE 1=1
   AND O.OBJECT_NAME = T.TABLE_NAME
   AND O.OBJECT_NAME = TC.TABLE_NAME
   AND O.OBJECT_TYPE = TC.TABLE_TYPE
   AND O.OWNER       = CC.OWNER
   AND T.TABLE_NAME  = CC.TABLE_NAME
;

이렇게 만들어집니다.

 

관리자(DBA) 권한으로 조회하고 싶다면

SELECT O.OWNER                            -- 오너명
     , T.TABLE_NAME                       -- 테이블 명
     , TC.COMMENTS    AS TABLE_COMMENT    -- 테이블 코맨트(주석)
     , CC.COLUMN_NAME                     -- 컬럼 명
     , CC.COMMENTS    AS COLUMN_COMMENTS  -- 컬럼 코맨트(주석)
  FROM DBA_OBJECTS O
     , DBA_TABLES T
     , DBA_TAB_COMMENTS TC
     , ALL_COL_COMMENTS CC
 WHERE 1=1
   AND O.OBJECT_NAME = T.TABLE_NAME
   AND O.OBJECT_NAME = TC.TABLE_NAME
   AND O.OBJECT_TYPE = TC.TABLE_TYPE
   AND O.OWNER = CC.OWNER
   AND T.TABLE_NAME = CC.TABLE_NAME
;

로 3개의 테이블의 맨앞 단어만 ALL, USER, USER를 DBA로 바꿔주시면 됩니다.