oracle

推荐列表 站点导航

当前位置:首页 > 数据库 > oracle >

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

来源:网络整理  作者:网络  发布时间:2020-12-10 10:05
Oracle中大批量删除数据的方法...
写一个循环删除的过程。
DBMS_OUTPUT.PUT_LINE('Totally '||to_char(n_delete)||' records deleted!');
'delete from '||p_TableName||' where '||p_Condition||' and rownum <= :10000'
 while 1=1 loop
pragma autonomous_transaction;
begin
exit;
commit;
n_delete number:=0;
commit;
n_delete:=n_delete + SQL%ROWCOUNT;
as
EXECUTE IMMEDIATE
else
SQL> exec delBigTab('HS_DLF_DOWNLOG_HISTORY','NUMDLFLOGGUID < 11100000','10000');
create or replace procedure delBigTab(p_TableName in varchar2,p_Condition in varchar2,p_Count in varchar2) 
PL/SQL procedure successfully completed.
SQL> set timing on
方法虽好,但我应用在一个亿级数据库时还是觉得慢得不行。就算删一点点数据也觉得好象挺慢的。
end delBigTab; 
end loop;
end if;
调用:
Elapsed: 00:00:18.54
DBMS_OUTPUT.PUT_LINE('Finished!');
if SQL%NOTFOUND then
USING p_Count;

相关热词: oracle 方法

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/sql/oracle/2131.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

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

2020-12-10 编辑:网络

写一个循环删除的过程。
DBMS_OUTPUT.PUT_LINE('Totally '||to_char(n_delete)||' records deleted!');
'delete from '||p_TableName||' where '||p_Condition||' and rownum <= :10000'
 while 1=1 loop
pragma autonomous_transaction;
begin
exit;
commit;
n_delete number:=0;
commit;
n_delete:=n_delete + SQL%ROWCOUNT;
as
EXECUTE IMMEDIATE
else
SQL> exec delBigTab('HS_DLF_DOWNLOG_HISTORY','NUMDLFLOGGUID < 11100000','10000');
create or replace procedure delBigTab(p_TableName in varchar2,p_Condition in varchar2,p_Count in varchar2) 
PL/SQL procedure successfully completed.
SQL> set timing on
方法虽好,但我应用在一个亿级数据库时还是觉得慢得不行。就算删一点点数据也觉得好象挺慢的。
end delBigTab; 
end loop;
end if;
调用:
Elapsed: 00:00:18.54
DBMS_OUTPUT.PUT_LINE('Finished!');
if SQL%NOTFOUND then
USING p_Count;

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/sql/oracle/2131.shtml

相关文章

风云图片

推荐阅读

返回oracle频道首页