Search

2018년 12월 23일 일요일

[Database] [Oracle] 테이블 및 컬럼 검색하기

#1. 들어가기

데이터베이스 내에서 사용하는 스키마나 테이블이 많을 경우, 한 번에 어떤 컬럼 혹은 테이블이 어느 위치에 있는지 잘 모를 때가 많다. 혹은, 한글로된 코맨트 정보를 이용해 역추적 하는 경우도 많다.


#2. 쿼리

아래의 코드를 이용해 WHERE구문을 변경해가며 테이블이나 컬럼 위치를 찾으면 보다 유용하다.
- 테이블명 검색 : (영문or물리)A1.TABLE_NAME, (국문or논리)A1.COMMENTS
- 컬럼명 검색 : (영문or물리)A3._COLUMN_NAME, (국문or논리)A3.COMMENTS


--테이블 및 컬럼명 검색
SELECT      A1.OWNER                                                /*OWNER*/
           ,A1.TABLE_NAME                           AS  TAB_ID      /*테이블영문명*/
           ,A2.COMMENTS                             AS  TAB_NM      /*테이블한글명*/
           ,A3.COLUMN_ID                            AS  COL_SEQ     /*컬럼순서*/
           ,A1.COLUMN_NAME                          AS  COL_ID      /*컬럼영문명*/
           ,A1.COMMENTS                             AS  COL_NM      /*컬럼한글명*/
           ,A3.NULLABLE                             AS  NULL_YN     /*NULL여부*/  
           ,A3.DATA_TYPE||'('||A3.DATA_LENGTH||')'  AS DATA_TYPE    /*데이터타입*/
FROM        SYS.ALL_COL_COMMENTS  A1
INNER JOIN  SYS.ALL_TAB_COMMENTS  A2
        ON  A1.OWNER       = A2.OWNER
       AND  A1.TABLE_NAME  = A2.TABLE_NAME
INNER JOIN  SYS.ALL_TAB_COLS  A3
        ON  A1.OWNER       = A3.OWNER
       AND  A1.TABLE_NAME  = A3.TABLE_NAME
       AND  A1.COLUMN_NAME = A3.COLUMN_NAME
WHERE       A1.TABLE_NAME  = 'MY_TABLE_NAME'
ORDER BY    A1.OWNER
           ,A1.TABLE_NAME
           ,A3.COLUMN_ID
;

댓글 없음:

댓글 쓰기