IT 성장일기

[Oracle] 테이블 레이아웃 한번에 조회하기 본문

Database/Oracle

[Oracle] 테이블 레이아웃 한번에 조회하기

고 양 2024. 2. 29. 13:37
반응형
테이블 레이아웃 한번에 조회하기

 

테이블 레이아웃에 대한 종합적인 정보가 필요할 때  아래 쿼리를 통해 번에 조회할 수 있습니다.

이 때 제공되는 정보는 특정 테이블의 컬럼명, 데이터타입, 테이블 코멘트와 컬럼 코멘트 등이 포함됩니다.

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..

코멘트와 관련된 뷰에서는 코멘트와 테이블, 컬럼명 정도만 간결하게 가져올 수 있었고
테이블 컬럼과 관련된 뷰에서는 그 외에 꽤 다양한 정보를 제공받을 수 있었습니다.

 

앞으로는 테이블에 포함된 컬럼명이나 데이터타입 등을 보다 고급지게 가져올 수 있게 되었습니다.

 

도움이 되어드렸다면 구독 / 좋아요 부탁드립니다.👏🏻

감사합니다.🙂

반응형