[Oracle] 오라클 컬럼명으로 테이블 찾기 2가지 방법
- 데이터베이스/오라클
- 2023. 12. 18.
오라클에서 칼럼명으로 테이블을 찾을 때는 주로 칼럼 코멘트 시스템 뷰와 칼럼 정보 시스템 뷰에서 찾는다. 여러 가지 시스템 뷰를 조인해서 쿼리문을 작성하면 조금 더 많은 정보가 조회되므로 유용하게 사용할 수 있다.
목차 |
칼럼 코멘트 시스템 뷰에서 찾기 (ALL_TAB_COMMENTS)
SELECT *
FROM all_col_comments
WHERE column_name = 'DEPTNO' --컬럼명 대문자
칼럼명이 포함된 테이블을 찾을 때는 칼럼 코멘트 시스템 뷰를 사용하면 쉽게 찾을 수 있다. 해당 칼럼명이 포함된 테이블명과 칼럼 설명을 함께 조회할 수 있기 때문에 자주 사용하는 방법이다.
all_col_comments | 사용자 계정이 접근 가능한 모든 칼럼 코멘트 조회 |
user_col_comments | 사용자 계정에 생성된 모든 칼럼 코멘트 조회 |
dba_col_comments | 관리자(DBA) 권한으로 모든 칼럼 코멘트 조회 |
칼럼의 데이터 타입과 사이즈까지 확인해야 한다면 아래의 칼럼 정보 시스템 뷰를 사용하여 조회하면 된다.
칼럼 정보 시스템 뷰에서 찾기 (ALL_TAB_COLUMNS)
SELECT *
FROM all_tab_columns
WHERE column_name = 'DEPTNO' --컬럼명 대문자
칼럼 정보 시스템 뷰를 사용하여 칼럼명을 조회하면, 칼럼의 데이터 타입과 사이즈 등 칼럼의 세부정보까지 확인할 수 있다.
all_tab_columns | 사용자 계정이 접근 가능한 모든 칼럼 정보 조회 |
user_tab_columns | 사용자 계정에 생성된 모든 칼럼 정보 조회 |
dba_tab_columns | 관리자(DBA) 권한으로 모든 칼럼 정보 조회 |
칼럼 데이터 타입과 코멘트를 같이 찾기
SELECT a.owner
, a.table_name
, a.column_name
, a.data_type ||
CASE WHEN a.data_type LIKE '%CHAR%'THEN
'(' || a.data_length || ')'
WHEN a.data_type = 'NUMBER' AND a.data_precision > 0 AND a.data_scale > 0 THEN
'(' || a.data_precision || ',' || a.data_scale || ')'
WHEN a.data_type = 'NUMBER' AND A.data_precision > 0 THEN
'(' || a.data_precision || ')'
END AS data_type
, b.comments
FROM all_tab_columns a
, all_col_comments b
WHERE a.column_name = 'DEPTNO' --컬럼명 대문자
AND a.owner = b.owner
AND a.table_name = b.table_name
AND a.column_name = b.column_name
칼럼 정보 시스템 뷰와 칼럼 코멘트 시스템 뷰를 조인하여 쿼리문을 작성하면 조금 더 상세하게 정보를 찾을 수 있다.