精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-16
最后修改:2009-02-26
1.使用FORALL比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换。
2.使用BLUK COLLECT一次取出一个数据集合,比用游标条取数据效率高,尤其是在网络不大好的情况下。但BLUK COLLECT需要大量内存。 使用例子: (1)定义一个TABLE ----me add (type t_f1 is table of varchar2(20) type index by binary_integer) 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; (3) begin 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2089 次