DB

[Oracle] 테이블 컬럼 구조 조회하기 (메타테이블,DESC)

쑤기c 2014. 5. 19. 17:22

방법1. Oracle 메타데이터 테이블 이용


-- 테이블 코멘트
SELECT * FROM USER_TAB_COLS WHERE TABLE_NAME = '테이블명'; 
--└ 단, DB Link 테이블에 대해서는 권한때문인지 조회되지 않는다. 

-- 컬럼 코멘트 정보 
SELECT * FROM USER_COL_COMMENTS WHERE ROWNUM < 5; 

-- 테이블 스키마(DATA_TYPE,NULLABLE,..) 
SELECT * FROM USER_TAB_COLUMNS B WHERE ROWNUM < 5;

-- 테이블 컬럼 목록 조회
  SELECT t.TABLE_NAME, tc.COMMENTS, t.COLUMN_ID, t.COLUMN_NAME
         ||NVL2(t.DATA_LENGTH, '('||TO_CHAR(t.DATA_LENGTH)
                                  ||NVL2(t.DATA_PRECISION, ','||TO_CHAR(t.DATA_PRECISION),'')
                              ||')', '') AS DATA_TYPE
        ,t.NULLABLE, cc.COMMENTS, t.DATA_DEFAULT AS DATA_DEFAULT
    FROM USER_TAB_COLS t --테이블별 컬럼정보
        ,USER_TAB_COMMENTS tc -- 테이블 코멘트
        ,USER_COL_COMMENTS cc  -- 컬럼 코멘트
   WHERE 1=1
     AND tc.TABLE_TYPE = 'TABLE' AND t.TABLE_NAME = tc.TABLE_NAME(+)
     AND t.TABLE_NAME = cc.TABLE_NAME(+) AND t.COLUMN_NAME = cc.COLUMN_NAME(+)
     AND t.TABLE_NAME IN ('대상테이블')
ORDER BY t.TABLE_NAME, t.COLUMN_ID;

-- 2022.11.16 덧) CURRENT_OWER : ALL_OWNER 대상으로 조회하기
USER_TABLES : ALL_TABLES
USER_TAB_COLS : ALL_TAB_COLS
USER_TAB_COMMENTS : ALL_TAB_COMMENTS
USER_COL_COMMENTS : ALL_COL_COMMENTS

방법2. DESC 명령어
DESC 테이블명;
이 명령은 원인은 모르겠으나 Toad 10.5 에서 동작하지 않는다.(오류는 발생하지 않으나 무반응)

Oracle Client 설치시 설치된 SQL Plus로 접속해서 볼 수 있었다.
로컬DB 외에 DB Links 된 외부 테이블에 대해서도 작동된다.

1) 도스 커맨드 창 실행
2) sqlplus ID/PWD@서비스명
3) SQL> desc 테이블명

반응형