توضیحات

از دستور cursor for loop برای fech کردن و انجام دستور به ازای همه رکوردهای یک cursor استفاده می‌شود.

دستور

دستور برای cursor for loop به صورت زیر نوشته می‌شود:

FOR record_index in cursor_name
LOOP
   {...statements...}
END LOOP;

record_index: ایندکس رکورد را نشان می‌دهد.
cursor_name: نام cursor را نشان می‌دهد.
Statements: دستوری که به ازای تمام رکوردها در cursor اجرا می‌شود.

 

 


مثال

مثالی از یک تابع که از cursor for loop استفاده می‌کند:

CREATE OR REPLACE Function TotalIncome
   ( name_in IN varchar2 )
   RETURN varchar2
IS
   total_val number(6);

   cursor c1 is
     SELECT monthly_income
     FROM employees
     WHERE name = name_in;
BEGIN
total_val := 0;

   FOR employee_rec in c1
   LOOP
      total_val := total_val + employee_rec.monthly_income;
   END LOOP;

   RETURN total_val;
END;