첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

728x90
반응형
-- 직원 테이블을 생성한다.
CREATE TABLE EMP
(
    EMPNO    NUMBER(4, 0)
   ,ENAME    VARCHAR2(10)
   ,SAL      NUMBER(7, 2)
   ,CONSTRAINT PK_EMP PRIMARY KEY (EMPNO)
);

-- 직원 테이블에 데이터를 추가한다.
INSERT INTO EMP VALUES(7369, 'SMITH' ,  800);
INSERT INTO EMP VALUES(7499, 'ALLEN' , 1600);
INSERT INTO EMP VALUES(7521, 'WARD'  , 1250);
INSERT INTO EMP VALUES(7566, 'JONES' , 2975);
INSERT INTO EMP VALUES(7654, 'MARTIN', 1250);
INSERT INTO EMP VALUES(7698, 'BLAKE' , 2850);
INSERT INTO EMP VALUES(7782, 'CLARK' , 2450);
INSERT INTO EMP VALUES(7788, 'SCOTT' , 3000);
INSERT INTO EMP VALUES(7839, 'KING'  , 5000);
INSERT INTO EMP VALUES(7844, 'TURNER', 1500);
INSERT INTO EMP VALUES(7876, 'ADAMS' , 1100);
INSERT INTO EMP VALUES(7900, 'JAMES' , 950 );
INSERT INTO EMP VALUES(7902, 'FORD'  , 3000);
INSERT INTO EMP VALUES(7934, 'MILLER', 1300);

COMMIT;

SET SERVEROUTPUT ON;

DECLARE
    -- 숫자 VARRAY 타입을 정의한다.
    TYPE NUMBER_ARRAY_TYPE IS VARRAY(14) OF NUMBER;

    -- 숫자 VARRAY 타입의 직원 번호 VARRAY 변수를 정의하고 초기화 한다.
    V_EMPNO_NUMBER_ARRAY NUMBER_ARRAY_TYPE := NUMBER_ARRAY_TYPE
    (
        7369, 7499, 7521,
        7566, 7654, 7698,
        7782, 7788, 7839,
        7844, 7876, 7900,
        7902, 7934
    );
    
    -- 숫자 VARRAY 타입의 급여 VARRAY 변수를 정의한다.
    V_SAL_NUMBER_ARRAY NUMBER_ARRAY_TYPE;
BEGIN
    FORALL I IN V_EMPNO_NUMBER_ARRAY.FIRST..V_EMPNO_NUMBER_ARRAY.LAST
        UPDATE EMP
        SET    SAL   = SAL + 100
        WHERE  EMPNO = V_EMPNO_NUMBER_ARRAY(I)
        RETURNING SAL BULK COLLECT INTO V_SAL_NUMBER_ARRAY;

    FOR I IN V_SAL_NUMBER_ARRAY.FIRST..V_SAL_NUMBER_ARRAY.LAST
    LOOP
        DBMS_OUTPUT.PUT_LINE(V_SAL_NUMBER_ARRAY(I));
    END LOOP;
END;
728x90
반응형
Posted by 사용자 icodebroker

댓글을 달아 주세요