码迷,mamicode.com
首页 > 其他好文 > 详细

删除数据-大表根据rowid来删除部分数据

时间:2020-06-28 09:23:19      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:HERE   test   cursor   count()   数据   into   index   commit   etc   

偶遇需求,大表中需要删除部分数据。分批删除。

 

declare
TYPE type_table_rowid IS TABLE OF ROWID INDEX BY BINARY_INTEGER;
table_rowid type_table_rowid;
CURSOR cur_tmp IS
select rowid from test t where id=‘111111‘ or uin=‘222222‘; --------需要删除的数据的rowid获取
BEGIN
OPEN cur_tmp;
LOOP
FETCH cur_tmp BULK COLLECT
INTO table_rowid LIMIT 5000;
FORALL i IN 1 .. table_rowid.COUNT()
delete from test where ROWID = table_rowid(i);
COMMIT;
EXIT WHEN cur_tmp%NOTFOUND;
END LOOP;
COMMIT;
CLOSE cur_tmp;
END;
/

 

删除数据-大表根据rowid来删除部分数据

标签:HERE   test   cursor   count()   数据   into   index   commit   etc   

原文地址:https://www.cnblogs.com/lwq9614/p/13201019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!