ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Bulk Collect的基本用法-ZT

Bulk Collect的基本用法-ZT

原创 Linux操作系统 作者:spritesong 时间:2009-03-29 19:43:17 0 删除 编辑
       一般来讲在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_resultlimit 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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-03-28

  • 博文量
    62
  • 访问量
    24274