Oracle PL/SQL에서 컬렉션 (Collections)은 여러 값을 하나의 단위로 묶어서 관리할 수 있는 데이터 구조이다.
컬렉션을 사용하면 배열이나 리스트처럼 데이터를 그룹화할 수 있으며, 이를 통해 효율적으로 데이터에 접근하고 조작할 수 있다.
PL/SQL에서는 주로 세 가지 유형의 컬렉션이 사용된다.
1. VARRAY - 크기가 고정되어 있는 가변배열
DECLARE TYPE BRAND IS VARRAY(3) OF VARCHAR2(64); SMARTPHONE BRAND := BRAND('삼성','애플','샤오미'); BEGIN FOR I IN 1..SMARTPHONE.COUNT --배열 인덱스는 1번부터 시작 LOOP DBMS_OUTPUT.PUT_LINE(SMARTPHONE(I)); END LOOP; END;2. Nested Table - 크기가 고정되어 있지 않은 가변배열
DECLARE TYPE BRAND IS TABLE OF VARCHAR2(64); SMARTPHONE BRAND := BRAND('삼성','애플','샤오미'); BEGIN FOR I IN 1..SMARTPHONE.COUNT --배열 인덱스는 1번부터 시작 LOOP DBMS_OUTPUT.PUT_LINE(SMARTPHONE(I)); END LOOP; END;3. Associative Array - Key와 Value가 짝을 이루는 데이터 집합
-- Associative Array DECLARE TYPE BRAND IS TABLE OF VARCHAR2(50) --value INDEX BY VARCHAR2(50); --key SMARTPHONE BRAND; --Associative Array 변수 선언 I VARCHAR2(50); BEGIN /************* key : 스마트폰리 value : 회사명 *************/ SMARTPHONE('갤럭시') := '삼성'; SMARTPHONE('아이폰') := '애플'; SMARTPHONE('포코') := '샤오미'; I := SMARTPHONE.first; while I is not null loop dbms_output.put_line(SMARTPHONE(I)); I := SMARTPHONE.next(I); -- 다음 키 접근 end loop; END;