Oracle中的for和while循环

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONEOracle 中的 for while 循环
------------------------------------------------------------------------
有两种方式可以实现条件循环
一、 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;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15489979/viewspace-744719/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15489979/viewspace-744719/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值