Close a cursor after looping : Close Cursor « Cursor « Oracle PL / SQL






Close a cursor after looping

  
SQL>
SQL> CREATE TABLE myStudent (
  2    student_id NUMBER(5) NOT NULL,
  3    department CHAR(3)   NOT NULL,
  4    course     NUMBER(3) NOT NULL,
  5    grade      CHAR(1)
  6    );

Table created.

SQL>
SQL> INSERT INTO myStudent (student_id, department, course, grade)
  2                           VALUES (10000, 'CS', 102, 'A');

1 row created.

SQL>
SQL> INSERT INTO myStudent (student_id, department, course, grade)
  2                           VALUES (10002, 'CS', 102, 'B');

1 row created.

SQL>
SQL> INSERT INTO myStudent (student_id, department, course, grade)
  2                           VALUES (10003, 'CS', 102, 'C');

1 row created.

SQL>
SQL> INSERT INTO myStudent (student_id, department, course, grade)
  2                           VALUES (10000, 'HIS', 101, 'A');

1 row created.

SQL>
SQL> INSERT INTO myStudent (student_id, department, course, grade)
  2                           VALUES (10001, 'HIS', 101, 'B');

1 row created.

SQL>
SQL> INSERT INTO myStudent (student_id, department, course, grade)
  2                           VALUES (10002, 'HIS', 101, 'B');

1 row created.

SQL>
SQL>
SQL> set serveroutput on
SQL>
SQL> CREATE OR REPLACE PROCEDURE RSLoop AS
  2    v_RSRec myStudent%ROWTYPE;
  3    CURSOR c_RSGrades IS SELECT * FROM myStudent ORDER BY grade;
  4  BEGIN
  5    OPEN c_RSGrades;
  6    LOOP
  7      FETCH c_RSGrades INTO v_RSRec;
  8      EXIT WHEN c_RSGrades%NOTFOUND;
  9    END LOOP;
 10    CLOSE c_RSGrades;
 11
 12    DBMS_OUTPUT.PUT_LINE('Last row selected has ID ' || v_RSRec.student_id);
 13  END RSLoop;
 14  /

Procedure created.

SQL> show errors
No errors.
SQL>
SQL>
SQL>
SQL>
SQL> drop table myStudent;

Table dropped.

   
  








Related examples in the same category

1.Below is a function that demonstrates how to use the CLOSE statement
2.Closing the Cursor Variable
3.Close a cursor and open it again with another query
4.After the cursor is opened, the book table is dropped prior to looping through the cursor.
5.Close cursor after while loop
6.Close cursor in excpetion handler