+ -
当前位置:首页 → 问答吧 → 请大家帮我看看 rownum这么用行吗?

请大家帮我看看 rownum这么用行吗?

时间:2010-09-06

来源:互联网

有张表A记录数在千万,需要将表A符合条件记录备份到B表,同时删除A表记录,为避免长事务打算10000条提交一次事务,请大家帮我看看这样写行不行...先谢谢了!!
create or replace procedure clean_A
(
sdate in varchar
)
is
      a      number := 10000;
      cnt   number(;
begin
  loop
    select count(*) into cnt from A
    where a = sdate   ;

    if cnt <=0  then
       exit;
    end if;

    insert into B select *  from A
    where a= sdate  and  rownum <= 10000 ;

    delete from A
    where a= sdate and rownum <= 10000 ;

    commit;

  end loop;

end clean_A;
/

这insert与delete是相同的10000条记录吗?

作者: andes0   发布时间: 2010-09-06

这种搞法有点意思啊

这是随机命中,不一定能保障!

作者: duolanshizhe   发布时间: 2010-09-06

回复 duolanshizhe


    哪有什么好的办法处理这样的情况?

作者: andes0   发布时间: 2010-09-06

相关阅读 更多