oracle存储过程里嵌套游标循环

create or replace procedure xh_number_186_diff_p is
begin
  DECLARE
    --查询出一个集合 
    CURSOR c_number IS
      SELECT number186, money186
        from xh_number_186_t A
       where A.number186 in (select n.number186
                               from xh_number_186_t n
                             minus
                             select t.service_id
                               from xh_codesource t
                              where t.area_id = 'G000002');
 
    r_number c_number%ROWTYPE;
    --循环开始
  begin
    open c_number;
    loop
      fetch c_number
        into r_number;
      exit when c_number%notfound;
      Dbms_Output.put_line('number = ' || r_number.number186 || '=' ||
                           r_number.money186);
      insert into aa_t values(r_number.number186, r_number.money186);
    end loop;
    close c_number;
  end;
  delete from xh_codesource a
   where a.service_id in (select t.service_id
                         from xh_codesource t
                        where t.area_id = 'G000002'
                       minus
                       select n.number186 from xh_number_186_t n)
     and a.area_id = 'G000002';
end xh_number_186_diff_p;




猜你喜欢

转载自hongyongqq.iteye.com/blog/1766614
今日推荐