본문 바로가기
SQL/Oracle

오라클 SELECT로 테이블 내 컬럼, 타입, PK, NULL 등 확인방법

by wakestand 2020. 11. 24.
반응형

오라클에서 여러 테이블의

컬럼, 타입, PK, NULL 등을 확인 시에

테이블 하나씩 들어가서 확인해보려면

엄청 오랜 시간이 걸리는데

 

해당 쿼리를 사용하면

테이블의 컬럼, 데이터타입, PK, NULL, 기본값, 코멘트 등을

한번에 확인할 수 있다

 

쿼리는 아래 내용에서

테이블명만 바꿔 사용해주면 된다

 

   SELECT A.TABLE_NAME
         , (SELECT COMMENTS FROM ALL_TAB_COMMENTS X WHERE X.TABLE_NAME = A.TABLE_NAME AND X.OWNER = A.OWNER) AS TABLE_COMMENT
         , COLUMN_ID
         , A.COLUMN_NAME
         , A.DATA_TYPE ||
           CASE WHEN DATA_TYPE IN ('CHAR','NVARCHAR2','VARCHAR2') THEN '('||CHAR_LENGTH||' '||DECODE(CHAR_USED,'B','BYTE','CHAR')||')'
           WHEN DATA_TYPE IN ('NUMBER','NUMERIC') THEN '('||NVL2(DATA_PRECISION,DATA_PRECISION,DATA_LENGTH)||', '||NVL(DATA_SCALE,'0')||')' END AS DATA_TYPE
         , (SELECT POSITION FROM ALL_CONSTRAINTS X, ALL_CONS_COLUMNS Y WHERE X.CONSTRAINT_TYPE = 'P' AND X.CONSTRAINT_NAME = Y.CONSTRAINT_NAME AND X.TABLE_NAME = A.TABLE_NAME AND X.OWNER = A.OWNER AND Y.COLUMN_NAME = A.COLUMN_NAME) AS Primary_key
         , DECODE(A.NULLABLE,'Y','NULL','NOT NULL') AS NULLABLE
         , DATA_DEFAULT
         , (SELECT COMMENTS FROM ALL_COL_COMMENTS X WHERE X.TABLE_NAME = A.TABLE_NAME AND X.COLUMN_NAME = A.COLUMN_NAME AND X.OWNER = A.OWNER) AS COLUMN_COMMENT
    FROM ALL_TAB_COLUMNS A, ALL_COL_COMMENTS B
   WHERE A.TABLE_NAME = B.TABLE_NAME
     AND A.COLUMN_NAME = B.COLUMN_NAME
     AND A.TABLE_NAME = 'EMP' -- 테이블명
ORDER BY A.TABLE_NAME, A.COLUMN_ID
반응형

댓글