[Oracle PL/SQL] 컬렉션(Collections)

코린이·2024년 9월 18일

ORACLE PL/SQL

목록 보기
4/7

컬렉션(Collections)

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;

0개의 댓글