728x90

1. USER_TAB_COLUMNS란?
USER_TAB_COLUMNS는 Oracle에서 현재 사용자 스키마에 존재하는 모든 테이블 및 뷰의 컬럼 정의 정보를 보여주는 데이터 딕셔너리 뷰입니다. 이 뷰는 스키마 객체를 분석하거나 프로그램과 연동할 때 테이블 구조를 자동으로 파악하는 데 가장 널리 사용됩니다.
2. 주요 용도
- 컬럼 목록 자동 추출: 동적 SQL, 문서 자동화, ORM 매핑 등
- 데이터 타입 분석: VARCHAR2, NUMBER, DATE 등 컬럼별 속성 확인
- NULL 허용 여부 확인: 제약 조건 설정 전 검토
- 데이터 마이그레이션 시 구조 검증: 타 스키마와 비교
3. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| TABLE_NAME | 컬럼이 포함된 테이블 또는 뷰의 이름 |
| COLUMN_NAME | 컬럼 이름 |
| DATA_TYPE | 컬럼의 데이터 타입 (예: VARCHAR2, NUMBER 등) |
| DATA_LENGTH | 문자형 데이터의 길이 또는 숫자형 정밀도 |
| DATA_PRECISION | 숫자형 데이터의 정밀도(소수점 이전 자릿수) |
| DATA_SCALE | 숫자형 데이터의 소수점 이하 자릿수 |
| NULLABLE | 컬럼이 NULL을 허용하는지 여부 (Y/N) |
| COLUMN_ID | 테이블 내에서 컬럼의 순서 |
4. 실전 활용 예제
-- 특정 테이블의 컬럼 정의 조회
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'EMPLOYEES'
ORDER BY COLUMN_ID;
-- 문자열 타입 컬럼만 필터링
SELECT TABLE_NAME, COLUMN_NAME
FROM USER_TAB_COLUMNS
WHERE DATA_TYPE LIKE '%CHAR%';
5. 관련 딕셔너리 뷰 비교
| 뷰 이름 | 설명 | 범위 |
|---|---|---|
| USER_TAB_COLUMNS | 사용자 스키마 내 테이블/뷰의 컬럼 정의 | 본인 소유 객체만 |
| ALL_TAB_COLUMNS | 접근 가능한 모든 객체의 컬럼 정의 | 다른 사용자 포함 |
| DBA_TAB_COLUMNS | 모든 사용자 객체의 컬럼 정보 | DBA 권한 필요 |
6. 고급 활용 전략
- DDL 스크립트 자동 생성: 컬럼 정보를 기반으로 CREATE TABLE 문 재구성
- 스키마 문서화 자동화: 컬럼 메타데이터를 수집하여 API 또는 보고서 문서화
- 데이터 정규화 분석: 데이터 타입과 NULLABLE 조합 분석으로 DB 설계 최적화
7. 결론
USER_TAB_COLUMNS는 Oracle 데이터베이스에서 테이블 및 뷰의 컬럼 정의를 가장 직관적이고 정확하게 확인할 수 있는 핵심 뷰입니다. 이를 통해 구조 분석, 문서화, 성능 최적화, 애플리케이션 연동 등 다양한 영역에서 높은 활용도를 자랑합니다.
참고 자료
- Oracle® Database SQL Language Reference 21c
- Oracle® Database Data Dictionary
- Oracle Help Center: https://docs.oracle.com/en/database/
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_TAB_COMMENTS 뷰로 테이블 주석 관리 및 문서화 자동화하기 (0) | 2025.08.08 |
|---|---|
| [ORACLE] USER_TAB_COL_STATISTICS 뷰로 컬럼 통계 최적화 전략 세우기 (0) | 2025.08.08 |
| [ORACLE] USER_TABLESPACES 뷰로 테이블스페이스 접근 권한 완벽 분석 (0) | 2025.08.08 |
| [ORACLE] USER_TABLES 뷰를 활용한 테이블 구조 분석과 관리 전략 (0) | 2025.08.08 |
| [ORACLE] USER_SYS_PRIVS로 사용자 시스템 권한 정밀 분석 (0) | 2025.08.07 |