■ FORALL문 : 레코드 기반 데이터 추가하기

------------------------------------------------------------------------------------------------------------------------

-- 직원 테이블을 생성한다.

CREATE TABLE EMPLOYEE

(

    EMPLOYEE_ID   NUMBER(4, 0)

   ,EMPLOYEE_NAME VARCHAR2(10)

   ,CONSTRAINT PK_EMPLOYEE PRIMARY KEY (EMPLOYEE_ID)

);

 

DECLARE

    -- 직원 중첩 테이블 타입을 정의한다.

    TYPE EMPLOYEE_TABLE_TYPE IS TABLE OF EMPLOYEE%ROWTYPE;

    

    -- 직원 중첩 테이블 타입의 변수를 정의하고 초기화 한다.

    V_EMPLOYEE_TABLE EMPLOYEE_TABLE_TYPE := EMPLOYEE_TABLE_TYPE();

BEGIN

    -- 직원 중첩 테이블 변수에 데이터를 추가한다.

    V_EMPLOYEE_TABLE.EXTEND(2);

    

    V_EMPLOYEE_TABLE(1).EMPLOYEE_ID   := 100;

    V_EMPLOYEE_TABLE(1).EMPLOYEE_NAME := '홍길동';

 

    V_EMPLOYEE_TABLE(2).EMPLOYEE_ID   := 200;

    V_EMPLOYEE_TABLE(2).EMPLOYEE_NAME := '김철수';

 

    -- 직원 중첩 테이블 변수의 데이터를 직원 테이블에 추가한다.

    FORALL I IN V_EMPLOYEE_TABLE.FIRST..V_EMPLOYEE_TABLE.LAST

        INSERT INTO EMPLOYEE VALUES V_EMPLOYEE_TABLE(I);

 

    COMMIT;

END;

 

-- 직원 테이블 데이터를 조회한다.

SELECT * FROM EMPLOYEE;

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요