본문 바로가기
Database/Oracle

[ORACLE] USER_TAB_COLUMNS 뷰로 테이블 컬럼 구조 완벽 분석하기

by Papa Martino V 2025. 8. 8.
728x90

USER_TAB_COLUMNS 뷰로 테이블 컬럼 구조 완벽 분석하기
[ORACLE] USER_TAB_COLUMNS

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 데이터베이스에서 테이블 및 뷰의 컬럼 정의를 가장 직관적이고 정확하게 확인할 수 있는 핵심 뷰입니다. 이를 통해 구조 분석, 문서화, 성능 최적화, 애플리케이션 연동 등 다양한 영역에서 높은 활용도를 자랑합니다.

참고 자료

728x90