오라클이나 티베로에서는 아래와 방법으로 테이블 목록을 조회할 수 있습니다.

 

 

SELECT  A.OWNER
     ,  A.TABLE_NAME
     ,  A.TABLESPACE_NAME
     ,  B.COMMENTS
  FROM  DBA_TABLES A
     ,  DBA_TAB_COMMENTS B
 WHERE  A.OWNER = B.OWNER
   AND  A.TABLE_NAME = B.TABLE_NAME
   AND  A.OWNER = ?

 

DBA_TABLES는 테이블에 대한 메타 정보이고, DBA_TAB_COMMENTS는 테이블의 코멘트에 대한 메타 정보입니다. 두 가지 정보를 조합하면 아래와 같이 현재 OWNER 소유의 테이블 목록을 구할 수 있습니다. (코멘트는 테이블에 대한 코멘트입니다)

OWNER TABLE_NAME TABLESPACE_NAME COMMENTS
TEST_OWNER TABLE_A TBLSPC_01 사용자 테이블
TEST_OWNER TABLE_B TBLSPC_01 부서 테이블
TEST_OWNER TABLE_C TBLSPC_02 로그 테이블
TEST_OWNER TABLE_D TBLSPC_02 권한 테이블
TEST_OWNER TABLE_E TBLSPC_02 사용자별 권한 테이블

 

또 다른 메타 정보를 이용하면 테이블의 컬럼 목록도 조회할 수 있습니다.

SELECT  A.OWNER
     ,  A.TABLE_NAME
     ,  B.COMMENTS
     ,  A.COLUMN_NAME
     ,  C.COMMENTS
     ,  A.DATA_TYPE
     ,  A.DATA_LENGTH
  FROM  DBA_TAB_COLS A
     ,  DBA_TAB_COMMENTS B
     ,  DBA_COL_COMMENTS C
 WHERE  A.OWNER = B.OWNER
   AND  A.TABLE_NAME = B.TABLE_NAME
   AND  A.OWNER = C.OWNER
   AND  A.TABLE_NAME = C.TABLE_NAME
   AND  A.COLUMN_NAME = C.COLUMN_NAME
   AND  A.OWNER = ?
   AND  A.TABLE_NAME = ?

DBA_TAB_COLS는 테이블 별 컬럼에 대한 메타 정보이고, DBA_COL_COMMENTS는 컬럼의 코멘트에 대한 메타 정보입니다. 특정 OWNER에 속하는 모든 테이블의 정보를 조회하고 싶으면 A.OWNER 조건만 주면 되고, 특정 테이블에 대한 정보를 조회하고 싶으면 A.TABLE_NAME 조건도 사용하시면 됩니다.

300x250

+ Recent posts