Oracle 游标处理II - 使用BULK COLLECT
2013-06-13 16:36
375 查看
以前写了一个Oracle 游标处理
http://hi.baidu.com/wangzhiqing999/blog/item/db33b52993b8e23a359bf774.html
是最原始的,一条一条处理的。如果数据量很大的话,采用这种一条一条的处理方式的话,效率会很低。
由于仅仅是为了演示语法,以及使用的例子,测试表还是使用上次的那个 只有3条记录的 test_main 表。
BULK COLLECT在数据量很大的时候,能够显著提升性能。
这里仅仅是语法上的演示。
LIMIT 后面的数字,意味着每一批加载多少数据。
SQL> DECLARE
2 -- 定义类型.
3 TYPE test_type IS TABLE OFtest_main%ROWTYPE;
4 test_data test_type;
5 -- 定义游标.
6 CURSOR c_test_main IS
7 SELECT id, value FROMtest_main;
8 BEGIN
9 -- 打开游标.
10 OPEN c_test_main;
11 --开始循环
12 LOOP
13 -- 填充数据批量填充,每次读取2条.
14 FETCH c_test_main
15 BULKCOLLECTINTO test_data LIMIT 2;
16
17 -- 调试输出.
18 FOR i IN 1..test_data.count
19 LOOP
20 dbms_output.put_line(test_data(i).value);
21 END LOOP;
22
23 -- 当没有数据的时候,退出。
24 EXIT WHEN c_test_main%NOTFOUND;
25
26 END LOOP;
27 --关闭游标.
28 CLOSE c_test_main;
29 END;
30 /
ONE
TWO
THREE
PL/SQL 过程已成功完成。
http://hi.baidu.com/wangzhiqing999/blog/item/db33b52993b8e23a359bf774.html
是最原始的,一条一条处理的。如果数据量很大的话,采用这种一条一条的处理方式的话,效率会很低。
由于仅仅是为了演示语法,以及使用的例子,测试表还是使用上次的那个 只有3条记录的 test_main 表。
BULK COLLECT在数据量很大的时候,能够显著提升性能。
这里仅仅是语法上的演示。
LIMIT 后面的数字,意味着每一批加载多少数据。
SQL> DECLARE
2 -- 定义类型.
3 TYPE test_type IS TABLE OFtest_main%ROWTYPE;
4 test_data test_type;
5 -- 定义游标.
6 CURSOR c_test_main IS
7 SELECT id, value FROMtest_main;
8 BEGIN
9 -- 打开游标.
10 OPEN c_test_main;
11 --开始循环
12 LOOP
13 -- 填充数据批量填充,每次读取2条.
14 FETCH c_test_main
15 BULKCOLLECTINTO test_data LIMIT 2;
16
17 -- 调试输出.
18 FOR i IN 1..test_data.count
19 LOOP
20 dbms_output.put_line(test_data(i).value);
21 END LOOP;
22
23 -- 当没有数据的时候,退出。
24 EXIT WHEN c_test_main%NOTFOUND;
25
26 END LOOP;
27 --关闭游标.
28 CLOSE c_test_main;
29 END;
30 /
ONE
TWO
THREE
PL/SQL 过程已成功完成。
相关文章推荐
- oracle 存储过程,游标、异常处理,集合使用入门详解
- 【oracle】游标使用 --简单案例--菜鸡教程
- oracle使用六(游标管理)
- Oracle使用游标为所有用户表添加主键语句
- 106---oracle的PL/SQL,异常处理, 游标(CURSOR), 子程序,存储过程
- Oracle游标使用大全
- Oracle 游标使用全解 - shawnXiao - 博客园
- Oracle 游标使用全解
- oracle存储过程中使用Ref Cursor强类型游标返回结果集
- oracle存储过程:游标使用,多重游标
- Oracle游标使用大全(转)
- [Oracle]使用滚动游标
- oracle 11gR2 单机使用asm存储 改主机名 重启系统 GI故障处理
- Oracle 中使用游标返回结果集
- Oracle游标使用大全
- Java使用Oracle遇到的最大游标超出问题及其解决方法
- Oracle 游标使用全解
- oracle游标的基本使用demo
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 游标使用(转)