日期:2014-05-17  浏览次数:21204 次

LOOP 中出现异常后怎么继续执行循环,执行下一条记录 ,
create   or   replace   procedure   amerce(quarterstart   in   varchar2,
                                                                      quarterend       in   varchar2,
                                                                      quarter       in   varchar2)   is
    V_m1                       INTEGER;
    v_vendor               srm062.vendor%TYPE;
    v_plant                 srm062.plant%TYPE;
    v_acount_demif   srm062.demif%TYPE;   --   demif¼¾¶ÈºÏ¼Æ
    v_o_demif             srm061.demif%TYPE;   --Ä¿±ê
    --     v_o_ppm                 srm061.ppm%TYPE;   --PPMÄ¿±ê
    v_demifmoney       srm065.demifmoney%TYPE;
    v_Cdemifmoney     srm065.demifmoney%TYPE;
    v_startscope       srm066.startscope%TYPE;
    v_endscope           srm066.endscope%TYPE;
    v_menoy                 srm066.menoy%TYPE;
    v_ppm                     srm065.Ppm%TYPE;   --PPMºÏ¼Æ

    cursor   c_s061   is
        select   t.plant,   t.vendor,   sum(t.demif)
            from   srm062   t
          where   t.closedate   > =   TO_DATE(quarterstart,   'YYYY-MM-DD ')
              and   t.closedate   <=   TO_DATE(quarterend,   'YYYY-MM-DD ')
          group   by   t.plant,   t.vendor;

    cursor   c_s066   is
        select   s66.startscope,   s66.endscope,   s66.menoy   from   srm066   s66;

begin
    OPEN   C_S061;
    LOOP
   
        FETCH   c_s061
            into   v_plant,   v_vendor,   v_acount_demif;
   
        EXIT   WHEN   c_s061%NOTFOUND;
        --&Auml;&iquest;±ê&Ouml;&micro;
        select   s.demif         --,   s.ppm
            into   v_o_demif     --,   v_o_ppm
            from   srm061   s
          where   s.plant   =   v_pl