oracle的delete删除大数据表的语句如何写windows批处理文件,并且时时显示删除的语句

比如,我10G数据库里的进销存表,13年4月份到5月份,一个月有1800多万条数据,查询语句:
select count(*) from jxc001 where date <= to_date('2013-05-01','yyyy-mm-dd');查询结果:18230514
循环删除语句5000一提交:delete from jxc001 where date <= to_date('2013-05-01','yyyy-mm-dd') and rownum <= 5000;commit;
想要在windows批处理文件里面实现,在批处理里面时时显示删除语句,删除到多少行了,主要是看个删除的进度,这样直观。

这种大表不做分区。。你直接delete跑不出来的
建议把不需要删除的数据放到一个临时表
然后清空表
再把临时表的数据insert回来追问

做不到啊,光这一个表的数据就占用将近46个G,只能一点点删除的。。而且不能truncate的。。

追答

有分区直接truncate partition
没有分区不能直接delete的
索引什么的重建就好了。
不同方法时间花费可能有上百倍的差别,望三思

温馨提示:答案为网友推荐,仅供参考
相似回答