Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52125
  • 博文数量: 23
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 281
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-04 16:00
文章分类

全部博文(23)

文章存档

2014年(19)

2008年(1)

2007年(3)

我的朋友

分类: Oracle

2014-05-10 20:45:25

一、PL/SQL循环结构:
   1、作用:是PL/SQL程序语言的基本结构之一,它实现了程序代码块的循环执行,使得PL/SQL功能更加强大。
   2、循环三要素:
        1)循环计数器,一般在程序中人为控制
        2)循环体
        3)循环退出条件
   3、说明:
        1)在循环体结束时,末尾需要加上分号“;”(英文输入模式下的),如:end loop;
        2)在语句结束时,末尾需要加上分号“;”(英文输入模式下的).

二、循环结构分类:
   
    1、FOR循环
    2、LOOP ..EXIT WHEN 循环
    3、WHILE .. LOOP循环

三、FOR循环:

  语法:

    for var_name in [reverse ]var_list    //var_name指FOR循环计数器,var_list计数列表,如:for i in 1 .. 20;
                                          //reverse指的是反向读取变量     
    loop
      ...
    end loop;                            //end loop 后必须有分号‘;’(在英文输入模式下的)
 
  说明:
     var_name     ----------- 循环计数器
     var_list     ----------- 循环退出条件
     loop ... end loop; ----- 循环体,注意末尾的分号‘;’(在英文输入模式下的)
     reverse      ----------- 指的是反向读取变量

  实例: 

    declare
      v_sno number not null := 30;    --如果PL/SQL块中不需要声明变量,则可略去'declare'部分.
    begin
      for x in 1 .. 20
      loop
        dbms_output.put_line( 'The value of X is '|| x );
      end loop;
    end;

    begin
      for x in reverse 1 .. 10         --reverse指的是反向读取变量 
      loop
        dbms_output.put_line( 'The value of X is '|| x );
      end loop;
    end; 

四、LOOP ..EXIT WHEN 循环:

   语法:


      declare                          //变量声明区域,如无需变量声明,则可略去。
        ...
      begin
        loop
          ...
        exit when (condtion );        //conditon是where语句的条件,如:x > 50.注意末尾的‘;’
        end loop;                     //注意最后的分号‘;’(英文模式下的)
      end;

   说明:
     cycle_tally  -------------- 循环计数器,一般在程序中人为控制。
     exit when (condtion ) ----- 循环退出条件
     loop ... end loop; -------- 循环体,注意末尾的分号‘;’(在英文输入模式下的)


   实例:

      declare
        x number := 50;
      begin
        loop
          dbms_output.put_line('The value of X is '||x);
          x := x - 10;            --循环计数器
        exit when ( x <= 20 );
        end loop;
      end;
      
     --between A and B 测试:
      declare
        x number := 50;
      begin
        loop
          dbms_output.put_line('The value of X is '||x);
          x := x - 10;            --循环计数器
        exit when  (x between 20 and  30 );
        end loop;
      end;
  
五、WHILE .. LOOP循环:
  
   语法:
      
      declare                             //变量声明区域,如无需变量声明,则可略去。
        ...
      begin
        while ( condition )               //conditon是where语句的条件,如:x > 50.
        loop
          ...
        end loop;                         //注意最后的分号‘;’(英文模式下的)
      end;


   说明:
     cycle_tally  -------------- 循环计数器,一般在程序中人为控制。
     while ( condition ) ------- 循环退出条件
     loop ... end loop; -------- 循环体,注意末尾的分号‘;’(在英文输入模式下的)


   实例:
    
      declare 
        x number :=50;
      begin
        while ( x >= 30 ) 
        loop
          dbms_output.put_line('The Value of X is '||x);
          x := x - 5;             --循环计数器,一般在程序中人为控制
        end loop;
      end;

阅读(243) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~