hongyongqq 发表于 2013-1-29 14:30:56

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;
页: [1]
查看完整版本: oracle存储过程里嵌套游标循环