SQL/ORACLE함수

오라클 간단한 프로시져 CURSOR,FOR 문 사용하기

nineDeveloper 2014. 6. 11. 15:34
728x90
반응형

CREATE OR REPLACE PROCEDURE "SP_TEST"(
            P_YD_GP      In VARCHAR2
)
IS 
   PRAGMA AUTONOMOUS_TRANSACTION;
   CURSOR c1 IS
        SELECT AA,BB,MAX_ROW FROM TB_TEST

        ;
        rec_c1 c1%ROWTYPE;  

        I_MAX_LAY          NUMBER(2);
BEGIN 
   
    OPEN c1;
    LOOP
        FETCH c1 INTO rec_c1;
        EXIT WHEN c1%NOTFOUND;
       
        I_MAX_LAY := rec_c1.MAX_ROW ;
       
        FOR II IN 1..I_MAX_LAY LOOP
            INSERT INTO TEST_DB

            (AA,BB)
            VALUES
            (
                rec_c1.AA, rec_c1.BB

            );
        END LOOP;
    END LOOP;

    CLOSE c1;


     COMMIT;
 
Exception 
 
        WHEN OTHERS THEN
        BEGIN
                ROLLBACK ;
        END;
     
END SP_TEST;

728x90
반응형