مارا دنبال کنید : 

Cursor for loop

توضیحات
از دستور cursor for loop برای fech کردن و انجام دستور به ازای همه رکوردهای یک cursor استفاده می‌شود.
دستور
دستور برای cursor for loop به صورت زیر نوشته می‌شود:
1
2
3
4
FOR record_index in cursor_name
LOOP
   {...statements...}
END LOOP;
record_index: ایندکس رکورد را نشان می‌دهد. cursor_name: نام cursor را نشان می‌دهد. Statements: دستوری که به ازای تمام رکوردها در cursor اجرا می‌شود.    
مثال
مثالی از یک تابع که از cursor for loop استفاده می‌کند:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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;