declare
cursor del_cur_800w is select * from t for update where rownum<=1000;
begin
for i in 1..8000 loop
open del_cur_800w
loop
delete from t where current of del_cur_800w;
exit when del_cur_800w%NOTFOUND OR del_cur_800w%NOTFOUND IS NULL;
END LOOP;
COMMIT;
CLOSE del_cur_800w;
END LOOP;
END;
cursor del_cur_800w is select * from t for update where rownum<=1000;
begin
for i in 1..8000 loop
open del_cur_800w
loop
delete from t where current of del_cur_800w;
exit when del_cur_800w%NOTFOUND OR del_cur_800w%NOTFOUND IS NULL;
END LOOP;
COMMIT;
CLOSE del_cur_800w;
END LOOP;
END;
本文介绍了一种使用PL/SQL过程和游标批量删除Oracle数据库中大量数据的方法。通过定义一个游标并循环打开及关闭该游标,每次迭代删除1000条记录的方式,有效地实现了批量数据删除操作。
1768

被折叠的 条评论
为什么被折叠?



