테이블 정의서 (Table Spec)
MsSQL 의 테이블 정의서를 만드는 내용을 저번 포스팅에서 다뤄보았는데, 오늘은 오라클에 대해서 조회해보도록 하자.
[MsSQL] 테이블 정의서 만들기 - 쿼리로 추출하기
테이블의 자세한 내용에 대해 설명 할 때 꼭 필요한 것이 테이블 정의서이다.
테이블의 존재하는 컬럼과 컬럼들의 Data Type 등을 기록하는 문서이며,
해당 문서를 통해 DBA에게 Table 생성을 요청하거나, 프로젝트 명세를 위해 내역을 첨부하는 등 필요가 많다.
보통은 DBA에게 요청하는 문서로 작성되어 오지만, 기존의 테이블의 정의를 확인하고 문서화 하기위해 정의서를 생성해 내야할 필요가 있다.
그럴 때 사용하기 적절한 쿼리에 대해 소개해보도록 하겠다.
Query
쿼리내용은 아래와 같다.
select a.table_name,
b.comments as table_comment,
c.column_name,
nvl2(f.column_name, 'PK', null) as pk,
c.data_type as column_type,
case
when c.data_type = 'NUMBER' and c.data_scale > 0
then to_char(c.data_precision) || ',' || to_char(c.data_scale)
when c.data_type = 'NUMBER' and c.data_precision > 0 and c.data_scale = 0
then to_char(c.data_precision)
when c.data_type = 'NUMBER' and c.data_precision is null
then null
when c.data_type = 'DATE'
then null
else to_char(c.data_length)
end as column_length,
c.nullable as column_nullable,
d.comments as column_comment
from DBA_TABLES a
left outer join DBA_TAB_COMMENTS b
on a.owner = b.owner
and a.table_name = b.table_name
left outer join DBA_TAB_COLUMNS c
on a.owner = c.owner
and a.table_name = c.table_name
left outer join DBA_COL_COMMENTS d
on a.owner = d.owner
and a.table_name = d.table_name
and c.column_name = d.column_name
left outer join DBA_CONSTRAINTS e
on a.owner = e.owner
and a.table_name = e.table_name
and e.constraint_type = 'P'
left outer join DBA_CONS_COLUMNS f
on a.owner = f.owner
and a.table_name = f.table_name
and d.column_name = f.column_name
and e.constraint_name = f.constraint_name
where a.owner = '[OWNER Name]'
and a.table_name = '[TABLE Name]'
where절에 원하는 테이블 소유 스키마와 테이블명을 입력하여 테이블 정의서를 추출 할 수 있다.
Table_Name : 테이블명
Table_Comment : 테이블 주석
Column_name : 컬럼명
Column_Type : 컬럼 타입
Column_Length :컬럽 타입의 길이
PK : Primary key
Column_Nullable : Null 가능 유무
Column_Comment : 컬럼 주석
기본적으로 필요한 내용을 추출한다.
반응형
'DATABASE > Oracle' 카테고리의 다른 글
[Oracle] 오라클 종료 - Shut Down Option (0) | 2024.11.22 |
---|---|
[Oracle] 프로시저 내에서 DDL 실행하기 - Create, Drop, Atler, Truncate, CTAS (0) | 2024.11.21 |
[Oracle] 프로시저 내용 찾기 - 특정 테이블이 사용되는 프로시저 찾기 (0) | 2024.11.15 |
[Oracle] DML Trigger - 테이블에서 사용하는 트리거 정리 (0) | 2024.11.11 |
[Oracle] External Table - 외부 CSV 파일을 테이블로 만들기 (0) | 2024.03.30 |
[Oracle] Table / Column Comment - 코멘트, 설명 달기 (0) | 2024.01.26 |
[Oracle] 11g 시퀀스 (Sequence) 컬럼 자동 증가 값 (1) | 2023.08.09 |
[DBA][Oracle] 자주 쓰는 쿼리 - TableSpace 용량 및 파일 위치 확인 (1) | 2023.08.08 |