반응형
오라클에서 여러 테이블의
컬럼, 타입, 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
반응형
'SQL > Oracle' 카테고리의 다른 글
오라클 인덱스(INDEX) 조회 쿼리 (0) | 2020.11.25 |
---|---|
오라클 LIKE IN 사용방법 및 예제 (REGEXP_LIKE) (0) | 2020.11.24 |
오라클 테이블 컬럼 COMMENT 입력 수정 삭제 및 조회방법 정리 (0) | 2020.11.24 |
오라클 WHERE IF ELSE 사용방법 및 예제 (0) | 2020.11.24 |
오라클 WITH 개념 및 예제 (가상 테이블 생성하여 활용) (0) | 2020.11.24 |
댓글