PL/SQL레코드는 여러개의 데이터 타입을 갖는 변수들의 집합이다.
스칼라, RECORD, 또는 PL/SQL TABLE datatype중 하나 이상의 요소로 구성 된다.
논리적 단위로서 필드 집합을 처리할 수 있도록 해 준다.
PL/SQL 테이블과 다르게 개별 필드의 이름을 부여할 수 있고, 선언시 초기화가 가능하다.
-- 선언 예제 TYPE record_test IS RECORD ( record_empno NUMBER, record_ename VARCHAR2(30), record_sal NUMBER); -- record_test 레코드 타입으로 prd_record변수를 선언해서 사용 prd_record record_test; -- 아래 프로시저에서 사용된 예제를 보면 이해가 쉽게 갈 것이다.
SQL> CREATE OR REPLACE PROCEDURE Record_Test ( p_empno IN emp.empno%TYPE ) IS -- 하나의 레코드의 세가지의 변수타입 선언 TYPE emp_record IS RECORD (v_empno NUMBER, v_ename VARCHAR2(30), v_hiredate DATE ); emp_rec emp_record ; BEGIN DBMS_OUTPUT.ENABLE; -- 레코드의 사용 SELECT empno, ename, hiredate INTO emp_rec.v_empno, emp_rec.v_ename, emp_rec.v_hiredate FROM emp WHERE empno = p_empno; DBMS_OUTPUT.PUT_LINE( '사원번호 : ' || emp_rec.v_empno ); DBMS_OUTPUT.PUT_LINE( '사원이름 : ' || emp_rec.v_ename ); DBMS_OUTPUT.PUT_LINE( '입 사 일 : ' || emp_rec.v_hiredate); END; / -- (DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용) SQL> SET SERVEROUTPUT ON ; -- 실행 결과 SQL> EXECUTE Record_Test(7369); 사원번호 : 7369 사원이름 : SMITH 입 사 일 : 80/12/17 PL/SQL 처리가 정상적으로 완료되었습니다. -- %ROWTYPE 예제와 비교해 보세요
- 강좌 URL : http://www.gurubee.net/lecture/1048
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.