批量删除Oracle数据库的数据(1)

文章作者 100test 发表时间 2007:03:14 13:48:23
来源 100Test.Com百考试题网


在使用0delete语句删除数据时,数据库是要做日志记录的,以便将来可以恢复数据,可是我在删除上百万条数据时,十分缓慢甚至死机,请问有没有什么好方法?

  网友观点一:

create or replace procedure 0delete_table
is
i number(10).
begin
for x in (0select * from emp where deptno like a%)
loop
0delete emp where emp.id = x.id
i:=i 1.
if i>1000 then
commit.
i:=0.
end if.
end loop.
exception
when others then
dbms_out.put_line(sqlcode).
rollback.
end 0delete_table.

  网友观点二:

这个是我平常用来批量删除数据,每500条数据提交一次。
declare
cnt number(10):=0.
i number(10).
begin
0select count(*) into cnt from ep_arrearage_bak where to_char(df_date,mm)=01.

for i in 1..trunc(cnt/500) 1 loop
0delete from ep_arrearage_bak where to_char(df_date,mm)=01 and rownum<=500.
commit.
end loop.
end.



相关文章


在同一台机运行多个Mysql服务(下)(2)
批量删除Oracle数据库的数据(2)
在同一台机运行多个Mysql服务(上)(1)
Oracl数据库中大数据的备份(1)
批量删除Oracle数据库的数据(1)
Oracl数据库中大数据的备份(3)
在同一台机运行多个Mysql服务(上)(2)
Oracl数据库中大数据的备份(2)
用Oracle和Python武装你的头脑(6)(2)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛