본문 바로가기
Database/Oracle

[ORACLE] USER_VARRAYS : VARRAY 타입 구조 분석 및 활용 전략

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

USER_VARRAYS : VARRAY 타입 구조 분석 및 활용 전략
[ORACLE] USER_VARRAYS

1. USER_VARRAYS란?

Oracle에서 USER_VARRAYS 뷰는 현재 사용자 스키마에서 정의된 VARRAY(Variable-size array) 타입의 정보를 조회할 수 있는 데이터 딕셔너리 뷰입니다. VARRAY는 컬렉션(Collection) 타입 중 하나로, **정해진 최대 크기를 갖는 배열 형태**의 데이터 구조를 지원합니다. 복수의 데이터를 단일 컬럼에 저장하거나, 객체 타입과 결합하여 복잡한 구조를 표현할 때 사용됩니다.

USER_VARRAYS는 이와 같은 VARRAY 타입의 정의, 최대 크기, 저장 방식 등을 확인하는 데 필수적인 뷰입니다.

2. 주요 컬럼 설명

컬럼명 설명
TYPE_NAME VARRAY 타입의 이름
TYPE_OWNER 타입을 소유한 사용자
UPPER_BOUND 배열의 최대 크기
ELEM_TYPE_NAME 배열 원소의 데이터 타입
ELEM_TYPE_OWNER 데이터 타입을 정의한 소유자
STORAGE 배열이 테이블 내(INLINE) 또는 외부(OUT OF LINE)에 저장되는지 여부

3. 실전 활용 예제

3.1. 사용자 정의 VARRAY 타입 전체 조회


SELECT 
  TYPE_NAME, 
  UPPER_BOUND, 
  ELEM_TYPE_NAME, 
  STORAGE 
FROM 
  USER_VARRAYS;
    

3.2. 특정 VARRAY 타입 구조 확인


SELECT 
  * 
FROM 
  USER_VARRAYS 
WHERE 
  TYPE_NAME = 'PHONE_LIST';
    

3.3. INLINE 저장 방식만 필터링


SELECT 
  TYPE_NAME, 
  UPPER_BOUND 
FROM 
  USER_VARRAYS 
WHERE 
  STORAGE = 'INLINE';
    

4. Oracle 컬렉션 타입 비교

타입 특징 저장 방식 사용 예시
VARRAY 고정된 최대 크기의 순차 배열 INLINE 또는 OUT OF LINE 전화번호 목록, 옵션 리스트 등
NESTED TABLE 무제한 크기의 중첩 테이블 OUT OF LINE 다대다 관계 테이블
ASSOCIATIVE ARRAY 인덱스를 기반으로 한 맵 구조 메모리 내 처리 (PL/SQL 전용) 캐시, 맵 데이터 저장

5. USER_VARRAYS 활용 전략

  • 객체 타입과 조합: VARRAY를 OBJECT TYPE에 포함하여 복합 데이터 모델 생성
  • JSON/REST 응답 포맷: VARRAY는 JSON 배열 구조와 유사하므로 API 응답 모델에 유용
  • 제약 기반 모델링: 최대 크기를 미리 정의하여 데이터 유효성 강화
  • 성능 고려 저장 방식 선택: 데이터 크기에 따라 INLINE/OUT OF LINE 전략 수립

6. 주의사항

  • UPPER_BOUND 제한: 크기를 초과하는 삽입은 오류 발생
  • 저장 방식에 따른 성능 차이: INLINE은 빠르지만 크기 제한 존재
  • DDL 변경 시 주의: VARRAY 타입은 변경 시 DROP 후 재생성 필요

7. 결론

USER_VARRAYS 뷰는 Oracle에서 VARRAY 타입을 정의하고 사용하는 구조를 분석하는 데 필수적인 도구입니다. 다양한 컬렉션 타입 중에서도 VARRAY는 순차적이며 고정된 데이터 목록을 다룰 때 적합하며, 객체 중심 설계, API 포맷 구성, 데이터 무결성 보장 측면에서 실무 활용도가 높습니다.

8. 출처

728x90