Der einfachste Weg, die Zeilen in einer Tabelle in PL/SQL zu durchlaufen, ist etwas wie
BEGIN
FOR employees IN (SELECT emp_id FROM emp)
LOOP
dbms_output.put_line( employees.emp_id );
END LOOP;
END;
Alternativ könnten Sie alle EID-Werte in eine PL/SQL-Sammlung abrufen und die Sammlung durchlaufen, wie in diesem Beispiel
DECLARE
TYPE emp_id_tbl IS TABLE OF emp.emp_id%type;
l_emp_ids emp_id_tbl ;
BEGIN
SELECT emp_id
BULK COLLECT INTO l_emp_ids
FROM emp;
FOR i IN l_emp_ids .FIRST .. l_empnos.LAST
LOOP
dbms_output.put_line( l_emp_ids (i) );
END LOOP;
END;
Wenn Ihre Abfrage jedoch Tausende von Zeilen zurückgeben kann, kann das Abrufen aller Daten in die Sammlung mehr PGA-Speicher beanspruchen, als Sie möchten, und Sie müssen möglicherweise Zeilen in Blöcken mithilfe der LIMIT-Klausel abrufen. Aber das scheint uns an dieser Stelle zu weit voraus zu sein.