В большинстве случаев, требующих явного курсора, вы можете использовать курсорные циклы FOR вместо предложений OPEN, FETCH и CLOSE, чтобы упростить кодирование. Курсорный цикл FOR неявно объявляет индекс своего цикла как запись %ROWTYPE, открывает курсор, итеративно извлекает строки данных из активного множества в поля записи, и закрывает курсор после того, как все строки обработаны. В следующем примере курсорный цикл FOR неявно объявляет запись emp_rec как принадлежащую типу
- c1%ROWTYPE:
- DECLARE
- CURSOR c1 IS
- SELECT ename, sal, hiredate, deptno FROM emp;
- ...
- BEGIN
- ...
- FOR emp_rec IN c1 LOOP
- ...
- salary_total := salary_total + emp_rec.sal;
- END LOOP;
- END;