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.
Related examples in the same category