IT 성장일기
[Oracle] 테이블 레이아웃 한번에 조회하기 본문
반응형
테이블 레이아웃 한번에 조회하기
테이블 레이아웃에 대한 종합적인 정보가 필요할 때 아래 쿼리를 통해 번에 조회할 수 있습니다.
이 때 제공되는 정보는 특정 테이블의 컬럼명, 데이터타입, 테이블 코멘트와 컬럼 코멘트 등이 포함됩니다.
SELECT
TC.TABLE_NAME
, TC.COMMENTS
, CC.COLUMN_NAME
, CC.COMMENTS
, C.DATA_TYPE
, C.DATA_LENGTH
, C.NULLABLE
, C.DATA_DEFAULT
FROM
ALL_TAB_COMMENTS TC
LEFT JOIN
ALL_TAB_COLUMNS C
ON TC.OWNER = C.OWNER
AND TC.TABLE_NAME = C.TABLE_NAME
LEFT JOIN
ALL_COL_COMMENTS CC
ON TC.OWNER = CC.OWNER
AND TC.TABLE_NAME = CC.TABLE_NAME
AND C.TABLE_NAME = CC.TABLE_NAME
AND C.COLUMN_NAME = CC.COLUMN_NAME
WHERE
TC.TABLE_NAME LIKE 'TABLE_NAME';
어떤 정보를 가져올 수 있는지 확인해보기
총 세개의 뷰를 참조하여 테이블 정보를 가져올 수 있었습니다.
아까의 쿼리를 통해 각각의 뷰를 통해 어떤 정보를 가져올 있는지 확인해보았습니다.
SELECT
TC.TABLE_NAME
, TC.COMMENTS
, CC.COLUMN_NAME
, CC.COMMENTS
, C.DATA_TYPE
, C.DATA_LENGTH
, C.NULLABLE
FROM
ALL_TAB_COMMENTS TC
LEFT JOIN
ALL_TAB_COLUMNS C
ON TC.OWNER = C.OWNER
AND TC.TABLE_NAME = C.TABLE_NAME
LEFT JOIN
ALL_COL_COMMENTS CC
ON TC.OWNER = CC.OWNER
AND TC.TABLE_NAME = CC.TABLE_NAME
AND C.TABLE_NAME = CC.TABLE_NAME
AND C.COLUMN_NAME = CC.COLUMN_NAME
WHERE 1=0
OR TC.TABLE_NAME LIKE 'ALL_TAB_COMMENTS'
OR TC.TABLE_NAME LIKE 'ALL_COL_COMMENTS'
OR TC.TABLE_NAME LIKE 'ALL_TAB_COLUMNS';
<ALL_TAB_COMMENTS>
- OWNER
- TABLE_NAME
- TABLE_TYPE
- COMMENTS
<ALL_COL_COMMENTS>
- OWNER
- TABLE_NAME
- COLUMN_NAME
- CONNEMTS
<ALL_TAB_COLUMNS>
- OWNER
- TABLE_NAME
- COLUMN_NAME
- DATA_TYPE
- DATA_DEFAULT
- LOW_VALUE
- HIGH_VALUE
- etc..
코멘트와 관련된 뷰에서는 코멘트와 테이블, 컬럼명 정도만 간결하게 가져올 수 있었고
테이블 컬럼과 관련된 뷰에서는 그 외에 꽤 다양한 정보를 제공받을 수 있었습니다.
앞으로는 테이블에 포함된 컬럼명이나 데이터타입 등을 보다 고급지게 가져올 수 있게 되었습니다.
도움이 되어드렸다면 구독 / 좋아요 부탁드립니다.👏🏻
감사합니다.🙂
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle] 사용자 비밀번호 만료 정책 핸들링하기 (0) | 2024.03.08 |
---|---|
[Oracle] Oracle DB ORA-01045: user lacks CREATE SESSION privilege (0) | 2023.09.15 |
[Oracle] Oracle DB 테이블 스페이스 생성 시 오류 (ORA-01119, ORA-27040, OSD-04002) (0) | 2023.09.11 |
[Oracle] Oracle DB 인스턴스 삭제하기 (0) | 2023.09.11 |
[Oracle] Connection refused: connect 해결하기 (0) | 2023.09.11 |