본문 바로가기
Database/Oracle

[ORACLE] USER_UPDATABLE_COLUMNS : 컬럼 수정 가능 여부 진단과 활용 전략

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

USER_UPDATABLE_COLUMNS : 컬럼 수정 가능 여부 진단과 활용 전략
[ORACLE] USER_UPDATABLE_COLUMNS

1. USER_UPDATABLE_COLUMNS란?

USER_UPDATABLE_COLUMNS는 Oracle 데이터베이스에서 현재 사용자가 소유한 테이블 또는 뷰에 대해 **각 컬럼이 UPDATE, INSERT, DELETE 가능한지 여부**를 확인할 수 있는 데이터 딕셔너리 뷰입니다. 주로 **뷰(View)**를 대상으로 사용되며, 뷰 기반 애플리케이션 개발 시 수정 가능성 검토 또는 권한 진단</strong에 필수적인 정보입니다. 예를 들어 복잡한 조인이나 집계 함수가 포함된 뷰에서는 일부 컬럼만 수정 가능하고, 나머지는 읽기 전용이 될 수 있습니다. 이때 해당 컬럼이 업데이트 가능한지를 판단할 수 있는 것이 바로 이 뷰입니다.

2. 주요 컬럼 설명

컬럼명 설명
TABLE_NAME 해당 컬럼이 속한 테이블 또는 뷰의 이름
COLUMN_NAME 컬럼 이름
UPDATABLE UPDATE 가능 여부 (YES/NO)
INSERTABLE INSERT 가능 여부 (YES/NO)
DELETABLE DELETE 가능 여부 (YES/NO)
READ_ONLY 컬럼이 읽기 전용인지 여부 (YES/NO)

3. 실전 활용 예제

3.1. 수정 가능한 컬럼만 필터링


SELECT 
  TABLE_NAME, 
  COLUMN_NAME 
FROM 
  USER_UPDATABLE_COLUMNS 
WHERE 
  UPDATABLE = 'YES';
    

3.2. 특정 뷰의 모든 컬럼과 수정 가능 여부 확인


SELECT 
  COLUMN_NAME, 
  UPDATABLE, 
  INSERTABLE, 
  DELETABLE 
FROM 
  USER_UPDATABLE_COLUMNS 
WHERE 
  TABLE_NAME = 'EMPLOYEE_VIEW';
    

3.3. 읽기 전용(READ_ONLY = YES) 컬럼 목록 조회


SELECT 
  TABLE_NAME, 
  COLUMN_NAME 
FROM 
  USER_UPDATABLE_COLUMNS 
WHERE 
  READ_ONLY = 'YES';
    

4. 관련 뷰 비교

뷰 이름 역할 사용 대상 특징
USER_UPDATABLE_COLUMNS 컬럼 단위 수정 가능 여부 확인 현재 사용자 소유 테이블/뷰 업데이트 제약 진단 가능
ALL_UPDATABLE_COLUMNS 접근 가능한 모든 객체의 수정 가능 여부 접근 가능한 타 사용자 객체 포함 JOIN 또는 복잡한 뷰 분석에 적합
DBA_UPDATABLE_COLUMNS 데이터베이스 전체 수정 가능 컬럼 정보 DBA 권한 필요 시스템 전체 분석 목적

5. USER_UPDATABLE_COLUMNS 활용 전략

  • 뷰 기반 폼 개발: 컬럼의 수정 가능 여부에 따라 UI 입력 필드 제어
  • 권한 점검: 실제로 INSERT/UPDATE 권한이 있는지 여부와의 불일치 탐지
  • 트리거 설계 참고: 수정 불가 컬럼에 트리거 작성 방지
  • 프로시저 방어 로직 설계: 읽기 전용 컬럼에 값이 들어오는 경우 오류 반환

6. 주의사항

  • 뷰의 구조 제약: 조인, 집계, 그룹핑, 서브쿼리 포함 시 대부분 컬럼은 읽기 전용이 됨
  • INSTEAD OF 트리거 여부: INSTEAD OF 트리거를 정의하면 읽기 전용 컬럼도 수정 가능하게 보일 수 있음
  • 실제 권한과는 별개: 이 뷰는 오브젝트 구조 기준이며, 사용자 권한 자체는 반영하지 않음 (권한은 USER_TAB_PRIVS 등에서 확인 필요)

7. 결론

USER_UPDATABLE_COLUMNS는 Oracle에서 뷰 또는 테이블의 컬럼이 수정 가능한지를 판단하는 데 매우 유용한 뷰입니다. 이를 통해 **SQL 기반 애플리케이션의 안정성과 데이터 무결성**을 확보할 수 있으며, 사용자 인터페이스, 자동화 스크립트, 권한 검증 도구에 연동함으로써 보다 정밀한 데이터 제어 전략을 설계할 수 있습니다.

8. 출처

728x90