日期:2014-05-16  浏览次数:20343 次

oracle 删除大量数据
create or replace procedure delBigTab
(
  p_TableName       in    varchar2,
  p_Condition       in    varchar2,
  p_Count        in    varchar2
)
as
  pragma autonomous_transaction;
  n_delete number:=0;
begin
while 1=1 loop
   EXECUTE IMMEDIATE
     'delete from '||p_TableName||' where '||p_Condition||' and rownum <= :rn'
   USING p_Count;
   if SQL%NOTFOUND then
      exit;
   else
            n_delete:=n_delete + SQL%ROWCOUNT;
   end if;
   commit;
end loop;
commit;
end;
/