Bulk Collect的基本用法-ZT

       一般来讲在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;
/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/293106/viewspace-580530/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/293106/viewspace-580530/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值