• (转)Oracle中的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;

  • 相关阅读:
    struts2.1.6存在中文乱码的bug
    记Spring下autowire为name时的一个现象
    AOP注解不起作用的debug结果
    占位
    占位
    Hibernate学习小结
    Struts2学习笔记
    金尚网上商城项目第一章小结
    JavaWeb 学习的第一阶段总结
    大话设计模式 笔记——策略模式
  • 原文地址:https://www.cnblogs.com/wangyt223/p/2735546.html
Copyright © 2020-2023  润新知