Mega Code Archive

 
Categories / Oracle PLSQL / Cursor
 

Close cursor after while loop

SQL> CREATE TABLE emp (   2    id         NUMBER PRIMARY KEY,   3    fname VARCHAR2(50),   4    lname  VARCHAR2(50)   5  ); Table created. SQL> SQL> INSERT INTO emp (id, fname, lname)VALUES (1, 'A', 'B'); 1 row created. SQL> INSERT INTO emp (id, fname, lname)VALUES (2, 'C', 'D'); 1 row created. SQL> INSERT INTO emp (id, fname, lname)VALUES (3, 'E', 'F'); 1 row created. SQL> INSERT INTO emp (id, fname, lname)VALUES (4, 'G', 'H'); 1 row created. SQL> INSERT INTO emp (id, fname, lname)VALUES (5, 'G', 'Z'); 1 row created. SQL> SQL> SET SERVEROUTPUT ON ESCAPE OFF SQL> SQL> DECLARE   2     v_emp emp%ROWTYPE;   3   4     CURSOR auth_cur IS SELECT * FROM emp;   5  BEGIN   6     OPEN auth_cur;   7   8     FETCH auth_cur INTO v_emp;   9  10     WHILE auth_cur%FOUND LOOP  11  12        DBMS_OUTPUT.PUT_LINE(v_emp.lname);  13  14        FETCH auth_cur INTO v_emp;  15  16     END LOOP;  17  18     CLOSE auth_cur;  19  END;  20  / B D F H Z PL/SQL procedure successfully completed. SQL> drop table emp; Table dropped.