讲解FORALL与BULK COLLECT的使用方法

第五阅读网 FiveRead.com  2008年05月12日  赛迪网 Andy

  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;

  

文章评论

发表您的评论 查看完整内容