For each row in the cursor
SQL>
SQL> set serveroutput on
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> 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 FOR v_RSRec IN c_RSGrades LOOP
6 NULL;
7 END LOOP;
8
9 DBMS_OUTPUT.PUT_LINE('Last row selected has ID ' || v_RSRec.student_id);
10 END RSLoop;
11 /
Procedure created.
SQL>
SQL>
SQL> drop table myStudent;
Table dropped.
Related examples in the same category