语法:

   
   
   
   
  1. FOR counter IN [REVERSE] start_range....end_range LOOP 
  2. statements; 
  3. END LOOP; 


  LOOP和WHILE循环的循环次数都是不确定的,FOR循环的循环次数是固定的,counter是一个隐式声明的变量,他的初始值是start_range,第二个值是start_range+1,直到end_range,如果start_range等于end _range,那么循环将执行一次。如果使用了REVERSE关键字,那么范围将是一个降序。

   
   
   
   
  1. X:=100; 
  2. FOR v_counter in 1..10 loop 
  3. x:=x+10; 
  4.  
  5. end loop 
  6. y:=x; 


  如果要退出for循环可以使用EXIT语句。

 


注意:上述for循环由于每循环一次v_counter自动加1,这里说明v_counter是数字类型。其实for循环还可以用来循环遍历表或者结果集,如:

 

   
   
   
   
  1. declare  
  2.   v_name varchar2(44);  
  3. begin  
  4. for d in (select * from vincent_voice where smstype = 3) loop  
  5.    v_name:=d.name  
  6.  end loop; 
  7. end;  

这个d就是一条记录,每次循环取得该结果集中的下一条记录

 

参考资料:http://www.programbbs.com/doc/73.htm