博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)Oracle中的for和while循环
阅读量:7281 次
发布时间:2019-06-30

本文共 1459 字,大约阅读时间需要 4 分钟。

有两种方式可以实现条件循环

一、for  变量  in  开始数值...结束数值 loop     end loop;

二、while 条件 loop       end  loop;

loop的使用方式:

一、X := 100;

  LOOP

    X := X + 10;

    IF X > 1000 THEN

      EXIT;

    END IF END LOOP;

    Y := X;

二、 X := 100;

    LOOP

      X := X + 10;

      EXIT WHEN X > 1000;

      X := X + 10;

    END LOOP;

    Y := X;

还有一个GOTO的使用,在后面的过程中会有的,用来产生错误日志。

以下是一个非常简单的过程,用来熟悉循环的!

create or replace procedure count_number is

  /*

  功能描述:计算计算出1到100的和

  t的值为和

  */

  i number(10);

  t number(10);

begin

  /*

    i := 1;

    t := 0;

  --用while+loop实现

    /*begin

      while i <= 100 loop

        t := t + i;

        i := i + 1;

      end loop;

    end;

    */

  i := 1;

  t := 0;

  --用for实现

  begin

    for i in 1 .. 100 loop

      t := t + i;

   

    end loop;

  end;

end count_number;

for循环:

[PL/SQL] 用For Loop 替代Cursor

CURSOR FOR Loop

     FOR  employee_rec in c1  ---employee_rec直接用,不用提前定义

     LOOP

     total_val := total_val + employee_rec.monthly_income;

     END LOOP;

     当使用CURSOR FOR Loop时,不用我手工open cursor close cursor

应用:

begin

         FOR emm IN ( SELECT ro_site, ns_site, product_line, wh_type

                      FROM eis_hq_invhl_mail_data

                     WHERE report_type = 'Detailed' )

        LOOP

        DBMS_OUTPUT.put_line( emm.product_line );

            eis_hq_invhl_pkg.make_mail_detailed_data

                                        ( p_ro_site =>           

emm.ro_site,

                                          p_ns_site =>           

emm.ns_site,

                                          p_product_line =>      

emm.product_line,

                                          p_wh_type =>           

emm.wh_type,

                                          p_current_day =>       

to_date('2005-11-07','yyyy-MM-dd') );

        END LOOP;

end;

存储过程DIY2----游标与循环

while循环:

WHILE( i <= CEIL( LENGTH( p_clob_data ) / 4000 ))

    LOOP

        v_clob_data := TRIM( SUBSTR( p_clob_data,

                                     i * 4000,

                                     4000 ));

        DBMS_OUTPUT.put_line( SUBSTR( v_clob_data,

                                      0,

                                      255 ));

      

        i := i + 1;

    END LOOP;

转载地址:http://ctzjm.baihongyu.com/

你可能感兴趣的文章
改善云迁移安全性最有效的三种方法
查看>>
德仪第三季度营收36.75亿美元 利润9.68亿美元
查看>>
OpenDaylight执行董事Neela Jacques:SDN/NFV是未来网络的关键
查看>>
NEC摘得NIST视频面部识别性能测试桂冠
查看>>
市场潜力大,车企纷纷进入车联网前装市场
查看>>
海尔并购全球最大平板太阳能制造商
查看>>
【SVN】总结(1):svn常见问题(2016-01-06)
查看>>
DevOps顾问行业开始快速增长
查看>>
Win10强势,微软必应搜索广告业务增长21%
查看>>
工信部公布29款问题手机App:极速WiFi万能钥匙上榜
查看>>
最具创新能力企业评选 苹果再度登顶
查看>>
2017年直播群雄逐鹿:社交直播会否收割行业未来?
查看>>
数据中心运维需要的三大认证
查看>>
诺基亚推物联网解决方案:创造可编程的世界
查看>>
如何利用开发者账号重签ipa文件,并部署到IOS设备做测试
查看>>
HPE实验室打造怪兽级The Machine内存系统
查看>>
云端应用监控服务商Datadog融资9450万美元
查看>>
《Web测试囧事》——1.4 利用JavaScript加载的漏洞提前购买抢购商品
查看>>
Line推出新语音群聊功能 最多支持200人
查看>>
通用功能测试用例
查看>>