bulk collect into之limit的使用
BULK COLLECT 可以降低 SQL 引擎到 PL/SQL 引擎的上下文交换(context switch)次数,,从而实现数据的高速检索。”并不是限制必须一次完成。Oracle 提供了 LIMIT 子句,可以限制每次从表中获取的记录数,测试如下:
SQL> select count(*) from t;
COUNT(*)
----------
536
SQL> declare
2 cursor c_t is select * from t;
3 type typ_t is table of c_t%rowtype
4 index by binary_integer;
5 v_type_t typ_t;
6 v_row pls_integer;
7 begin
8 open c_t;
9 loop
10 fetch c_t bulk collect into v_type_t
11 limit 100;
12 exit when v_type_t.count = 0;
13 dbms_output.put_line(v_type_t.count);
14 v_row :=v_type_t.first;
15 while(v_row is not null)
16 loop
17 -- dbms_output.put_line(v_type_t(v_row).empno);
18 null;
19 v_row :=v_type_t.next(v_row);
20 end loop;
21 end loop;
22 close c_t;
23 end;
24 /
100
100
100
100
100
36
PL/SQL procedure successfully completed.
posted on 2014-05-24 14:54 Sunny_NUAA 阅读(1082) 评论(0) 编辑 收藏 举报