您的位置:首页 > 数据库

使用PL/SQL中的bulk collect语句提高性能

2013-09-06 16:12 393 查看
记录有点多。可以通过使用limit语句来控制一次buck collect的记录数。
declare
cursor c is select ename, empno, hiredate from emp;
l_ename dbms_sql.varchar2_table;
l_empno dbms_sql.number_table;
l_hiredate dbms_sql.date_table;
begin
for i in 1 .. 5000
loop
open c;
loop
fetch c bulk collect into l_ename, l_empno, l_hiredate limit 500;
exit when c%notfound;
end loop;
close c;
end loop;
end;
/

Bulk collect主要用于批量获取数据的查询结果集,而forall主要用于数据的批量插入或者删除等操作。
有时需要把bulk collect和forall结合起来,比如某些ETL操作,如果这些操作不能使用直接路径加载,可以考虑使用bulk collect与forall结合的办法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  记录 close cursor