본문 바로가기
IT/Oracle

[Oracle] - 오라클 PL/SQL 레코드(record), 컬렉션(collections) 사용법

by 차이나는 개발자 2022. 7. 6.
728x90
반응형

#오라클 PL/SQL 레코드(record), 컬렉션(collections) 사용법

 

 

#레코드(record)

-레코드는 자료형이 각기 다른 데이터를 하나의 변수에 저장하는 데 사용합니다.

-레코드를 변수를 insert문이나 update문에도 사용할 수 있습니다.

-레코드 안에 또 다른 레코드를 포함하는 중첩 레코드도 만들수가 있습니다.

DECLARE
	TYPE RECORD_DEPT IS RECORD(
		DEPTNO NUMBER(2) NOT NULL := 1,
	  	DNAME VARCHAR(10) := '홍길동'   
	);
	dept_rec RECORD_DEPT; -- dept_rec가 레코드 변수 이름
BEGIN
	dept_rec.deptno := 3;
	dept_rec.dname := '둘리';
	DBMS_OUTPUT.PUT_LINE('dept_rec.deptno : ' || dept_rec.deptno);
	DBMS_OUTPUT.PUT_LINE('dept_rec.dname : ' || dept_rec.dname);
END;

 

-결과

dept_rec.deptno : 3
dept_rec.dname : 둘리

 

 

#컬렉션(collection)

-컬렉션은 특정 자료형의 데이터를 여러 개 저장하는 복합 자료형입니다.

-연관배열 : 중복되지 않는 키와 값으로 구성되는 컬렉션입니다.

TYPE 연관 배열명 IS TABLE OF 자료형(NOT NULL)
INDEX BY 인덱스형;
DECLARE 
	TYPE INDEX_EX IS TABLE OF VARCHAR2(2)
	INDEX BY PLS_INTEGER; -- 인덱스 자료형

	arr INDEX_EX;

BEGIN
	arr(1) := '1a';
	arr(2) := '2a';
	arr(3) := '3a';
	DBMS_OUTPUT.PUT_LINE('arr(1) : ' || arr(1));
	DBMS_OUTPUT.PUT_LINE('arr(2) : ' || arr(2));
	DBMS_OUTPUT.PUT_LINE('arr(3) : ' || arr(3));
END;

 

-결과

arr(1) : 1a
arr(2) : 2a
arr(3) : 3a

 

 

 

728x90
반응형

댓글