Nejjednodušší způsob, jak iterovat přes řádky v tabulce v PL/SQL, je udělat něco jako
BEGIN
FOR employees IN (SELECT emp_id FROM emp)
LOOP
dbms_output.put_line( employees.emp_id );
END LOOP;
END;
Případně můžete načíst všechny hodnoty EID do kolekce PL/SQL a iterovat kolekci, jako v tomto příkladu
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;
Pokud však váš dotaz může vrátit tisíce řádků, může načítání všech dat do kolekce spotřebovat více paměti PGA, než byste chtěli, a možná budete muset načítat řádky po částech pomocí klauzule LIMIT. Ale zdá se, že to v tuto chvíli předbíháme.