• 文字广告位
  • 文字广告位
  • 文字广告位
您现在的位置: 站长手册 >> 数据库 >> ORACLE >> 正文
站内搜索
Google
[组图]PL/SQL流程控制
        ★★★ 【字体:

PL/SQL流程控制

雅虎收藏夹 百度收藏 Google书签 Yahoo书签 新浪ViVi 搜狐网摘 365Key网摘 天极网摘 diglog 和讯网摘 POCO网摘 YouNote网摘 博拉网 天下图摘 Del.icio.us digg reddit spurl BlinkList blogmarks
人气: 来源:网络 作者:佚名 所属栏目:ORACLE [切换到繁體中文]
  PL/SQL程序中的流程控制语句借鉴了许多高级语言的流程控制思想,但又有自己的特点。

条件控制

    下面通过实例介绍条件控制语句的使用。
    1. if..then..end if条件控制
    采用if..then..end if条件控制的语法结构如图9.15所示。

    在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序判断两个整数变量的大小。 执行结果如图9.16所示。
    —————————————————————————————————————
    set serveroutput on
    declare
       number1 integer:=90;
       number2 integer:=60;
    begin
       if number1>=number2 then
           dbms_output.put_line('number1大于等于number2');
       end if;
    end;
    —————————————————————————————————————
    【配套程序位置】:第9章\ conditioncontrol1.sql。

    2. if..then..else..end if条件控制
    采用if..then..else..end if条件控制的语法结构如图9.17所示。

    在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序判断两个整数变量的大小,输出不同的结果。执行结果如图9.18所示。
    —————————————————————————————————————
    set serveroutput on
    declare
        number1 integer:=80;
        number2 integer:=90;
    begin
        if number1>=number2 then
            dbms_output.put_line('number1大于等于number2');
        else
            dbms_output.put_line('number1小于number2');
        end if;
    end;
    —————————————————————————————————————
    【配套程序位置】:第9章\ conditioncontrol2.sql。

    3. if嵌套条件控制
    采用if嵌套条件控制的语法结构如图9.19所示。

    在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序判断两个整数变量的大小,输出不同的结果。
    执行结果如图9.20所示。
    —————————————————————————————————————
    set serveroutput on
    declare
        number1 integer:=80;
        number2 integer:=90;
    begin
        if number1<=number2 then
           if number1=number2 then
              dbms_output.put_line('number1等于number2');
           else
              dbms_output.put_line('number1小于number2');
           end if;
        else
              dbms_output.put_line('number1大于number2');
        end if;
    end;
    —————————————————————————————————————
    【配套程序位置】:第9章\ conditioncontrol3.sql。


循环控制

    循环结构是按照一定逻辑条件执行一组命令,PL/SQL中有4种基本循环结构,在它们基础上又可以演变出许多嵌套循环控制,这里介绍最基本的循环控制语句。
    1. loop..exit..end loop循环控制
    采用loop..exit..end loop循环控制的语法结构如图9.21所示。

    在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序将number1变量每次加1,一直到等于number2为止,统计输出循环次数。
    —————————————————————————————————————
    set serveroutput on
    declare
        number1 integer:=80;
        number2 integer:=90;
        i integer:=0;
    begin
       loop
          number1:=number1+1;
          if number1=number2 then
             exit;
          else
             i:=i+1;
          end if;
      end loop;
     dbms_output.put_line('共循环次数:'||to_char(i));
    end;
    —————————————————————————————————————
    执行结果如图9.22所示。

    【配套程序位置】:第9章\loopcontrol1.sql。
    2. loop..exit..when..end loop循环控制
    采用loop..exit..when..end loop循环控制的语法结构与图9.21所示结构类似。
    exit when实际上就相当于
        if 条件 then
        exit;
      end if;
    在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序将number1变量每次加1,一直到等于number2为止,统计输出循环次数。
    —————————————————————————————————————
    set serveroutput on
    declare
        number1 integer:=80;
        number2 integer:=90;
        i integer:=0;
    begin
        loop
           number1:=number1+1;
           i:=i+1;
           exit when number1=number2;
        end loop;
     dbms_output.put_line('共循环次数:'||to_char(i));
    end;
    —————————————————————————————————————
    执行结果如图9.23所示。

    【配套程序位置】:第9章\loopcontrol2.sql。
    when循环控制结束条件比采用if的条件控制结束循环次数多1次。
    3. while..loop..end loop循环控制
    采用loop..exit..when..end loop循环控制的语法如下。
    while 条件 loop
       执行语句段;
    end loop;
    在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序将number1变量每次加1,一直到等于number2为止,统计输出循环次数。
    —————————————————————————————————————
    set serveroutput on
    declare
        number1 integer:=80;
        number2 integer:=90;
        i integer:=0;
    begin
        while number1<number2 loop
          number1:=number1+1;
          i:=i+1;
       end loop;
     dbms_output.put_line('共循环次数:'||to_char(i));
    end;
    —————————————————————————————————————
    执行结果如图9.24所示。

    【配套程序位置】:第9章\whilecontrol.sql。
    4. for..in..loop..end循环控制
    采用for..in..loop..end循环控制的语法如下。
    for 循环变量 in [reverse] 循环下界..循环上界 loop
        循环处理语句段;
    end loop;
    在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序通过循环变量I来控制number1增加次数,输出结果。执行结果如图9.25所示。
    —————————————————————————————————————
    set serveroutput on
    declare
       number1 integer:=80;
       number2 integer:=90;
       i integer:=0;
    begin
        for i in 1..10 loop
          number1:=number1+1;
        end loop;
      dbms_output.put_line('number1的值:'||to_char(number1));
    end;
    —————————————————————————————————————
    【配套程序位置】:第9章\forcontrol.sql。
  • 上一篇文章:
  • 下一篇文章:
  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    姓 名: *(必填项) ·注册用户·
    Email: QQ号:
    评 分: 1分 2分 3分 4分 5分
    • 您可以发表评论支持你喜欢的文章。
    • 请遵守《互联网电子公告服务管理规定》
    • 请遵守中华人民共和国各项有关法律法规。
    • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
    • 评论人需对自己在使用评论过程中的行为承担法律责任。
    • 本站管理员有权保留或删除评论内容。
    • 评论内容只代表个人观点,与本网站立场无关。
    站内文章搜索
    ·最新文章      
    ·热门文章      
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | | 京ICP备 05004866号 |
    版权所有 2007-2008 站长手册 WWW.ZZSC.ORG 业务联系 zzsc.org#gmail.com