主页 > 知识库 > Oracle中大批量删除数据的方法

Oracle中大批量删除数据的方法

热门标签:南通防封外呼系统运营商 语音电话机器人缺点 淮安自动外呼系统开发 广州市400电话办理 语音电话机器人营销方案 百变地图标注 地图标注原件 宜宾外呼系统厂家 修改高德地图标注
写一个循环删除的过程。
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中大批量删除数据的方法》相关的同类信息!
  • 本页收集关于Oracle中大批量删除数据的方法的相关信息资讯供网民参考!
  • 推荐文章