游标嵌套循环存储过程

create or replace procedure ResBlockBizCircleTemp
  is
      cursor param_vals
      is   select db.bizcircle_id from hlasset.t_hm_full_z_d_bizcircle db where db.district_id=23008629;
     param_val INTEGER;
     cursor param_rsid(param_val integer) is
        select rb.resblock_id from hlasset.t_hm_full_resblock_bizcirc rb where rb.bizcircle_id=param_val;
     rsid INTEGER;
 begin

  open param_vals;
  loop
       fetch param_vals into param_val;
       open param_rsid(param_val);
       loop
           fetch param_rsid into rsid;
           update hlasset.bz_resblock br set br.bizcircle_names=(
                  select frb.bizcircle_id from hlasset.t_hm_full_resblock_bizcirc frb
                  where frb.resblock_id=rsid
                  )
           where br.standard_id=rsid;
       commit;
       exit when param_rsid%notfound;
       end loop;
       close param_vals;
      

   exit when param_vals%notfound;
   end loop;
   close param_vals;
end ResBlockBizCircleTemp;

猜你喜欢

转载自super-sjh.iteye.com/blog/2063894
今日推荐