oracle数据库-表a有100W数据,delete删除,要分批提交(每批10W)代码该怎么写?
答案:5 悬赏:0 手机版
解决时间 2021-04-06 16:54
- 提问者网友:流星是天使的眼泪
- 2021-04-06 06:26
oracle数据库-表a有100W数据,delete删除,要分批提交(每批10W)代码该怎么写?
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-04-06 06:52
delete from a where rownum<=100000;
commit;追问呃 这样的话 我就要执行10次? 能不能自动控制 每10W提交一次??追答begin
v_cnt number:=0;
loop
delete from a where rownum<=100000;
v_cnt:=SQL%ROWCOUNT;
commit;
exit when v_cnt<=0;
end loop;
end;
commit;追问呃 这样的话 我就要执行10次? 能不能自动控制 每10W提交一次??追答begin
v_cnt number:=0;
loop
delete from a where rownum<=100000;
v_cnt:=SQL%ROWCOUNT;
commit;
exit when v_cnt<=0;
end loop;
end;
全部回答
- 1楼网友:逃夭
- 2021-04-06 09:56
引用baiyaj的回答:
delete from a where rownum<=100000;
commit;declare v_cnt number(30):=0;
begin
loop
delete from inc_incident t where adm_division = '330102000000' and length(content) >20 and rownum<=1000;
v_cnt:=SQL%ROWCOUNT;
commit;
exit when v_cnt<=0;
end loop;
end;
delete from a where rownum<=100000;
commit;declare v_cnt number(30):=0;
begin
loop
delete from inc_incident t where adm_division = '330102000000' and length(content) >20 and rownum<=1000;
v_cnt:=SQL%ROWCOUNT;
commit;
exit when v_cnt<=0;
end loop;
end;
- 2楼网友:逐風
- 2021-04-06 09:10
循环一下就可以了
- 3楼网友:你可爱的野爹
- 2021-04-06 08:41
直接trancate不好么?性能、速度上都比delete好多了
- 4楼网友:duile
- 2021-04-06 07:26
要全部删除,就TRUNCATE一下好了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯