쌍용교육(JAVA)/PL\SQL

쌍용교육 -PL/SQL 수업 21일차 콜렉션(1.varray2.중첩 테이블3.Associative array(index-by table)4.콜렉션을 데이터베이스 객체로 생성)

구 승 2024. 4. 12. 10:39

콜렉션

콜렉션 --데이터를 여러개 사용

VARRAY는 VARIABLE ARRAY의 약자로 고정길이 (Fixed NUMBER)를 가진 배열

DECLARE
 TYPE VARRAY_TEST IS VARRAY(3) OF INTEGER; -- 타입 변수,크기,데이터타입 / 여기서 사이즈가 3이라고 고정해둠.
 varray1 VARRAY_TEST; --위에서 선언한 VARRAY_TEST 타입 변수지정
BEGIN
varray1 := VARRAY_TEST(10,20,30);

DBMS_OUTPUT.PUT_LINE(varray1(1));
DBMS_OUTPUT.PUT_LINE(varray1(2));
DBMS_OUTPUT.PUT_LINE(varray1(3));
END;

10

20

30

 

중첩 테이블

중첩 테이블 : varray와 흡사하지만 중첩 테이블은 선언 시에 전체 크기를 명시할 필요가 없음.

DECLARE
TYPE NESTED_TEST IS TABLE OF VARCHAR2(10); --VARCHAR2(10)는 데이터의 자료형과 사이즈임. 중첩 테이블의 사이즈가 아님.
nested1 NESTED_TEST;
BEGIN
 nested1 := NESTED_TEST('A','B','C','D'); --여기서 넣는 만큼 사이즈가 정해짐.
 
 DBMS_OUTPUT.PUT_LINE(nested1(1));
 DBMS_OUTPUT.PUT_LINE(nested1(2));
 DBMS_OUTPUT.PUT_LINE(nested1(3));
 DBMS_OUTPUT.PUT_LINE(nested1(4));
END;

A

B

C

D

Associative array(index-by table)

ASSOCIATIVE ARRAY (INDEX -BY TABLE) : 연관배열
                    키와 값의 쌍으로 구성된 콜렉션. 하나의 키는 하나의 값과 연관되어져 있음.

DECLARE
 TYPE ASSOC_ARRAY_NUM_TYPE IS TABLE OF NUMBER INDEX BY PLS_INTEGER; -- NUMBER -> 값(value)의 타입 , PLS_INTEGER -> 키의 타입
 --키는 PLS_INTEGER형 이며, 값은 NUMBER형인 요소들로 구성
 assoc1 ASSOC_ARRAY_NUM_TYPE;
BEGIN
--키와 값 저장
--키는 3, 값은 33
assoc1(3) := 33;
 DBMS_OUTPUT.PUT_LINE(assoc1(3));
END;

33