728x90

1. USER_TYPE_ATTRS란?
USER_TYPE_ATTRS는 Oracle 데이터베이스에서 사용자가 정의한 객체 타입(OBJECT TYPE)에 포함된 **속성(Attributes)** 정보를 조회할 수 있는 데이터 딕셔너리 뷰입니다. 이 뷰는 객체 타입 내부의 필드 구조를 상세하게 보여주기 때문에, 데이터베이스 내 객체 지향 설계 구조를 분석하거나 통합 문서를 생성할 때 유용합니다. 특히 USER_TYPES 뷰와 함께 사용하면, 객체 타입의 정의 및 구조를 완전하게 이해할 수 있습니다.
2. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| TYPE_NAME | 속성이 속한 객체 타입의 이름 |
| ATTR_NAME | 속성 이름 (필드명) |
| ATTR_TYPE_NAME | 속성의 데이터 타입 이름 (예: VARCHAR2, NUMBER, 사용자 정의 타입) |
| LENGTH | 문자형 속성의 길이 (숫자형, DATE 등은 NULL) |
| PRECISION | 숫자형 속성의 정밀도 |
| SCALE | 숫자형 속성의 소수점 이하 자리수 |
| ATTR_NO | 속성의 순서 번호 |
3. 실전 활용 예제
3.1. 모든 사용자 정의 객체 타입의 속성 조회
SELECT
TYPE_NAME,
ATTR_NO,
ATTR_NAME,
ATTR_TYPE_NAME
FROM
USER_TYPE_ATTRS
ORDER BY
TYPE_NAME, ATTR_NO;
3.2. 특정 타입에 정의된 속성 정보 확인
SELECT
ATTR_NAME,
ATTR_TYPE_NAME,
LENGTH,
PRECISION,
SCALE
FROM
USER_TYPE_ATTRS
WHERE
TYPE_NAME = 'EMPLOYEE_OBJ';
3.3. 숫자형 속성만 필터링
SELECT
TYPE_NAME,
ATTR_NAME,
PRECISION,
SCALE
FROM
USER_TYPE_ATTRS
WHERE
ATTR_TYPE_NAME IN ('NUMBER', 'DECIMAL');
4. USER_TYPE_ATTRS vs 관련 뷰 비교
| 뷰 이름 | 설명 | 역할 | 사용 대상 |
|---|---|---|---|
| USER_TYPES | 객체 타입의 메타 정보 조회 | 타입 이름, 속성 수, 메서드 수 등 | 전체 정의 요약 |
| USER_TYPE_ATTRS | 객체 타입의 속성 상세 정보 | 각 필드의 이름, 순서, 데이터 타입 확인 | 객체 필드 분석 |
| USER_TYPE_METHODS | 객체 타입에 정의된 메서드 정보 | 프로시저, 함수 형태의 메서드 목록 | 캡슐화 로직 분석 |
5. USER_TYPE_ATTRS 활용 전략
- 객체 모델 시각화: 객체 타입의 구조를 ERD 문서 또는 API 문서로 생성할 때 활용
- 코드 자동 생성: 속성 정보를 기반으로 INSERT/UPDATE 스크립트 자동 생성
- OOP 설계 검토: 속성 명세를 통해 데이터 정규화, 책임 분리 구조 검증
- 모듈 재사용: 동일 속성을 가진 객체 타입을 공통 정의로 통합 가능
6. 주의사항
- 속성 수정 제한: 기존 타입에 속성을 직접 추가/삭제하는 것은 제한적이므로 초기 설계가 중요
- 대소문자 구분: TYPE_NAME, ATTR_NAME은 기본적으로 대문자로 저장되므로 쿼리 시 주의
- 의존성 고려: 타입 변경 시 관련된 테이블, 프로시저, 패키지 등 모두 영향을 받을 수 있음
7. 결론
USER_TYPE_ATTRS는 Oracle 객체 타입 내 속성 정보를 세부적으로 분석할 수 있는 매우 중요한 뷰입니다. 객체 지향 설계가 요구되는 시스템에서 데이터 구조의 재사용성과 유지보수 효율을 높이기 위해 필수적으로 활용되어야 하며, USER_TYPES, USER_TYPE_METHODS와 함께 사용하면 데이터베이스 내의 복잡한 OOP 구조를 체계적으로 분석하고 문서화할 수 있습니다.
8. 출처
- Oracle Corporation. Oracle Database Reference
- Steven Feuerstein, 『Oracle PL/SQL Programming』
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_UNUSED_COL_TABS : 삭제된 컬럼 정보 조회와 정리 전략 (0) | 2025.08.11 |
|---|---|
| [ORACLE] USER_TYPE_METHODS : 객체 타입 메서드 설계 및 분석 전략 (0) | 2025.08.10 |
| [ORACLE] USER_TYPES : 사용자 정의 객체 타입 완전 분석 가이드 (0) | 2025.08.09 |
| [ORACLE] USER_TS_QUOTAS : 사용자 테이블스페이스 할당량 진단과 관리 전략 (0) | 2025.08.09 |
| [ORACLE] USER_TRIGGER_COLS : 트리거 감시 컬럼 완전 분석 (0) | 2025.08.09 |