Oracle 테이블 스키마 및 인덱스 정보 추출

MSSQL에서 테이블 칼럼에 대한 정보를 추출하는 블로그 글을 쓴적이 있습니다.
MSSQL 테이블 정보 추출에 관해서 알고 싶으시면 아래 링크를 통해서 확인 가능 하십니다.

[MSSQL Error 처리 및 칼럼 설명 정보 추출]

[MSSQL 배열, 칼럼 추가 및 테이블 정보 추출]


오라클에도 동일하게 테이블 칼럼에 대한 정보를 추출 할 수 있습니다.
여기서는 또한 팁으로 인덱스 정보를 추출하는 쿼리도 같이 알아보겠습니다.





▶ Oracle 테이블 스키마 정보 추출

SELECT
    A.COLUMN_NAME
    , B.COMMENTS
    , A.DATA_TYPE
    , A.DATA_LENGTH
    , CASE WHEN C.CONSTRAINT_TYPE = 'P' THEN '○' ELSE '' END    -- PK 여부
    , CASE WHEN A.NULLABLE = 'N' THEN '○' ELSE '' END
    , A.DATA_DEFAULT
FROM USER_TAB_COLUMNS A, USER_COL_COMMENTS B, (
                                                SELECT
                                                    C.TABLE_NAME
                                                    , C.COLUMN_NAME
                                                    , D.CONSTRAINT_TYPE
                                                FROM USER_CONS_COLUMNS C
                                                    , (SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'P') D
                                                WHERE C.TABLE_NAME = D.TABLE_NAME
                                                    AND C.CONSTRAINT_NAME = D.CONSTRAINT_NAME
                                              ) C
WHERE A.TABLE_NAME = B.TABLE_NAME(+)
    AND A.COLUMN_NAME = B.COLUMN_NAME(+)
    AND A.TABLE_NAME = C.TABLE_NAME(+)
    AND A.COLUMN_NAME = C.COLUMN_NAME(+)
    AND A.TABLE_NAME = '테이블명'
ORDER BY COLUMN_ID;




▶ Oracle 테이블 인덱스 정보 추출

SELECT
    A.UNIQUENESS
    , B.INDEX_NAME
    , B.COLUMN_NAME
FROM ALL_INDEXES A, ALL_IND_COLUMNS B
WHERE A.INDEX_NAME = B.INDEX_NAME
    AND A.TABLE_NAME = '테이블명'
ORDER BY COLUMN_POSITION;




이상으로 Oracle 테이블 스키마 및 인덱스 정보 추출에 대해서 알아보았습니다.
오늘도 행복하고 좋은 하루 보내세요~~~^^

댓글

이 블로그의 인기 게시물

껌 떼는 법 (완벽 제거)

학점 계산기 (백분위 환산) 완벽 정리

[엑셀] 셀에 수식 적용하는 모든 것 완벽 정리