6.2.4 파라미터가 있는 커서(Cursors with Parameters)

출처 http://www.gurubee.net/lecture/1067

커서가 OPEN되고 질의가 실행되면 매개 변수 값을 커서에 전달할 수 있다. 다른 active set을 원할때 마다 explicit 커서를 따로 선언해야 한다.

파라미터가 있는 커서 문법

파라미터가 있는 커서 예제

 
SQL> CREATE OR REPLACE PROCEDURE ParamCursor_Test
        (param_deptno   emp.deptno%TYPE) 
     IS

        v_ename     emp.ename%TYPE;

        -- Parameter가 있는 커서의 선언
        CURSOR emp_list(v_deptno emp.deptno%TYPE) IS
        SELECT ename 
        FROM emp
        WHERE deptno = v_deptno;

     BEGIN

        DBMS_OUTPUT.ENABLE;
        DBMS_OUTPUT.PUT_LINE(' ****** 입력한 부서에 해당하는 사람들 ****** ');              

        -- Parameter변수의 값을 전달(OPEN될 때 값을 전달한다)
        FOR emplst IN emp_list(param_deptno) LOOP    

          DBMS_OUTPUT.PUT_LINE('이름 : ' || emplst.ename);

        END LOOP;    

        EXCEPTION  
          WHEN OTHERS THEN
             DBMS_OUTPUT.PUT_LINE('ERR MESSAGE : ' || SQLERRM);         

     END; 
     /

--DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용
SQL> SET SERVEROUTPUT ON ; 

-- 실행 결과
SQL> EXECUTE ParamCursor_Test(10);
****** 입력한 부서에 해당하는 사람들 ******
이름 : CLARK
이름 : KING
이름 : MILLER
    

답글 남기기 0

Your email address will not be published. Required fields are marked *