| 導購 | 订阅 | 在线投稿
分享
 
 
 

講解FORALL與BULK COLLECT的使用方法

來源:互聯網  2008-06-01 03:24:58  評論

1.使用FORALL比FOR效率高,因爲前者只切換一次上下文,而後者將是在循環次數一樣多個上下文間切換。

2.使用BLUK COLLECT一次取出一個數據集合,比用遊標條取數據效率高,尤其是在網絡不大好的情況下。但BLUK COLLECT需要大量內存。

使用例子:

(1)定義一個TABLE

CREATE OR REPLACE TYPE string_table AS TABLE OF VARCHAR2(100);

(2)在存儲過程裏面測試

DECLARE

v_table string_table;

BEGIN

SELECT cust_name

BULK COLLECT INTO v_table

FROM cust c

WHERE c.cust_id BETWEEN 64561 AND 64565;

FORALL idx IN 1..v_table.COUNT

INSERT INTO cust_test VALUES(v_table(idx));

COMMIT;

END;

1.使用FORALL比FOR效率高,因爲前者只切換一次上下文,而後者將是在循環次數一樣多個上下文間切換。 2.使用BLUK COLLECT一次取出一個數據集合,比用遊標條取數據效率高,尤其是在網絡不大好的情況下。但BLUK COLLECT需要大量內存。 使用例子: (1)定義一個TABLE CREATE OR REPLACE TYPE string_table AS TABLE OF VARCHAR2(100); (2)在存儲過程裏面測試 DECLARE v_table string_table; BEGIN SELECT cust_name BULK COLLECT INTO v_table FROM cust c WHERE c.cust_id BETWEEN 64561 AND 64565; FORALL idx IN 1..v_table.COUNT INSERT INTO cust_test VALUES(v_table(idx)); COMMIT; END;
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有