La façon la plus simple d'itérer sur les lignes d'une table en PL/SQL est de faire quelque chose comme
BEGIN
FOR employees IN (SELECT emp_id FROM emp)
LOOP
dbms_output.put_line( employees.emp_id );
END LOOP;
END;
Alternativement, vous pouvez récupérer toutes les valeurs EID dans une collection PL/SQL et parcourir la collection, comme dans cet exemple
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;
Cependant, si votre requête peut renvoyer des milliers de lignes, la récupération de toutes les données dans la collection peut utiliser plus de mémoire PGA que vous ne le souhaitez et vous devrez peut-être récupérer les lignes par blocs à l'aide de la clause LIMIT. Mais cela semble prendre de l'avance sur nous à ce stade.