过着简单,真实的生活,喜欢收藏变形金刚(TFE,G1,SL系列),研究金融股市,KOF98,篮球,学习研究Oracle技术,我并不是一个全职的Oracle DBA,但是对于Oracle技术的热爱和研究,是一个不争的事实,愿意结交广大Oracle技术爱好者!MSN:oracle_kof_tf@hotmail.com
Bulk Collect的基本用法
上一篇 /
下一篇 2008-03-12 16:54:59
/ 个人分类:Oracle数据库技术-PL/SQL
一般来讲在PL/SQL开发过程中,我们可以采用bulk collect将查询一次加载到一个集合(collection)中,而不是传统的通过cursor一条条的处理。大大提高了效率减少了loop循环的开销,但是需要注意的是bulk collect的所有承载变量都应该是collection类型的。
简单的例子:
1.通过cursor的fetch into来使用bulk collect
declare
type id_value is
table of alan.id%type;
my_result id_value;
cursor mycur is select id from alan where id <= 10;
begin
open mycur;
fetch mycur bulk collect into my_result;
-- dbms_output.put_line(mycur%rowcount);
close mycur;
for i in 1 .. my_result.count
loop
dbms_output.put_line(my_result(i));
end loop;
end;
/
2.加limit来限制fetch的数量,这里只从cursor里面fetch 5行数据
declare
type id_value is table of alan.id%type;
my_result id_value;
cursor mycur is select id from alan where id <= 10;
begin
open mycur;
fetch mycur bulk collect into my_result
limit 5;
-- dbms_output.put_line(mycur%rowcount);
close mycur;
for i in 1 .. my_result.count
loop
dbms_output.put_line(my_result(i));
end loop;
end;
/
3.在select中使用bulk collect的用法
declare
type id_value is table of alan.id%type;
my_result id_value;
begin
select id bulk collect into my_result from alan where rownum <= 15;
for i in 1 .. my_result.count
loop
dbms_output.put_line(my_result(i));
end loop;
end;
/
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: