ITPub博客

首页 > 数据库 > Oracle > oracle delete 分批删除

oracle delete 分批删除

原创 Oracle 作者:xulongxc 时间:2014-06-30 11:06:54 0 删除 编辑
在使用delete语句删除数据时,数据库是要做日志记录的,以便将来可以恢复数据,可是我在删除上百万条数据时,十分缓慢甚至死机,请问有没有什么好方法?

这个是我平常用来批量删除数据,每500条数据提交一次。
DECLARE
CNT NUMBER(10):=0;
I NUMBER(10);
BEGIN
SELECT COUNT(*) INTO CNT FROM ep_arrearage_bak WHERE TO_CHAR(DF_DATE,'MM')='01';

FOR I IN 1..TRUNC(CNT/500)+1 LOOP
DELETE FROM ep_arrearage_bak WHERE TO_CHAR(DF_DATE,'MM')='01' AND ROWNUM<=500;
COMMIT;
END LOOP;
END;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29440247/viewspace-1199618/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: nfs配置 /etc/exports
请登录后发表评论 登录
全部评论

注册时间:2014-01-13

  • 博文量
    58
  • 访问量
    237554