删除数据-大表根据rowid来删除部分数据
Posted lwq9614
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除数据-大表根据rowid来删除部分数据相关的知识,希望对你有一定的参考价值。
偶遇需求,大表中需要删除部分数据。分批删除。
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来删除部分数据的主要内容,如果未能解决你的问题,请参考以下文章