Oracle中如何大批量删除数据

来源:爱站网时间:2019-11-26编辑:网友分享
批量删除数据是一个很复杂很慢的过程,而且删除数据的方法也很多,那么你知道在Oracle中如何大批量删除数据吗?下面我们就针对这个问题一起去看看oracle大批量删除数据的方法吧。

批量删除数据是一个很复杂很慢的过程,而且删除数据的方法也很多,那么你知道在Oracle中如何大批量删除数据吗?下面我们就针对这个问题一起去看看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 <= :10000'
USING p_Count;
if SQL%NOTFOUND then
exit;
else
n_delete:=n_delete + SQL%ROWCOUNT;
end if;
commit;
end loop;
commit;
DBMS_OUTPUT.PUT_LINE('Finished!');
DBMS_OUTPUT.PUT_LINE('Totally '||to_char(n_delete)||' records deleted!');
end delBigTab; 
调用:
SQL> set timing on
SQL> exec delBigTab('HS_DLF_DOWNLOG_HISTORY','NUMDLFLOGGUID < 11100000','10000');
PL/SQL procedure successfully completed.
Elapsed: 00:00:18.54
方法虽好,但我应用在一个亿级数据库时还是觉得慢得不行。就算删一点点数据也觉得好象挺慢的。

上文就是关于Oracle中如何大批量删除数据的内容,上文中小编介绍了大批量删除数据的方法,希望大家可以掌握,得以在工作和学习中提高效率。

上一篇:oracle用户连接失败怎么办

下一篇:ORACLE中五种表的概述

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载