oracle下巧用bulk collect实现cursor批量fetch的sql语句

来源:asp之家 时间:2009-03-04 10:43:00 

在一般的情况下,使用批量fetch的几率并不是很多,但是Oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它。

declare
cursor c1 is select * from t_depart;
v_depart t_depart%rowtype ;
type v_code_type is table of t_depart.depart_code%type ;
v_code v_code_type ;
type v_name_type is table of t_depart.depart_name%type ;
v_name v_name_type ;
begin
open c1;
fetch c1 bulk collect into v_code , v_name ;
for i in 1..v_code.count loop
dbms_output.put_line(v_code(i)||' '||v_name(i));
end loop;
close c1;
end;


通过上面的这个列子大家可以发现如果列很多的话,为每一列定义一个集合似乎有些繁琐,可以把集合和%rowtype结合起来一起使用简化程序!


declare
cursor c1 is select * from t_depart;
type v_depart_type is table of t_depart%rowtype ;
v_depart v_depart_type ;
begin
open c1;
fetch c1 bulk collect into v_depart ;
for i in 1..v_depart.count loop
dbms_output.put_line(v_depart(i).depart_code||' '||
v_depart(i).depart_name);
end loop;
close c1;
end;


在输出结果时既可以使用集合的count属性和可以使用first和last,在引用%rowtype类型的内容时还有一个需要注意的地方是v_depart(i).depart_code,而不是v_depart.depart_code(i),当然没有这样的写法,即使有意义也并不一样。


declare
cursor c1 is select * from t_depart;
type v_depart_type is table of t_depart%rowtype ;
v_depart v_depart_type ;
begin
open c1;
fetch c1 bulk collect into v_depart ;
for i in v_depart.first..v_depart.last loop
dbms_output.put_line(v_depart(i).depart_code||' '||
v_depart(i).depart_name);
end loop;
close c1;
end;


标签:bulk,collect,cursor,批量,Oracle
0
投稿

猜你喜欢

  • 几种修复ACCESS数据库的实用方法

    2008-11-20 17:37:00
  • sql基本查询语句介绍

    2008-05-21 13:58:00
  • 三大措施设置数据库安全 保障网站安全运营

    2008-11-28 14:41:00
  • Oracle 启动例程 STARTUP参数说明

    2009-07-07 10:26:00
  • Dreamweaver使用中的7个常见问题与解答

    2007-11-03 11:34:00
  • asp中格式化HTML函数代码 SDCMS加强版

    2011-02-20 11:18:00
  • ASP 调用带参数输出的COM接口

    2011-03-17 10:59:00
  • ASP可显示和隐藏的树型菜单

    2007-10-01 14:40:00
  • SQL Server小知识:Processor Affinity

    2008-11-24 20:50:00
  • SQL Server中索引使用及维护

    2008-11-25 11:13:00
  • MySQL中的字符串模式匹配

    2010-03-09 16:30:00
  • CSS技巧及常见问题列表

    2008-04-06 14:00:00
  • Sql Server 2012 转换函数的比较(Cast、Convert和Parse)

    2012-08-21 10:21:40
  • 使用组件来保护你的ASP代码

    2008-06-03 13:47:00
  • 数学公式“四又二分之一”

    2009-01-14 20:03:00
  • JavaScript开发时的五个小提示

    2007-11-21 19:54:00
  • asp什么情况下用响应缓冲会提高运行速度?

    2010-07-14 21:02:00
  • 简单的ASP生成HTML并分页程序

    2009-07-20 12:32:00
  • mysql中普通索引和唯一索引的效率对比

    2010-12-08 16:03:00
  • 利用Axure封装视觉标准

    2008-10-21 10:42:00
  • asp之家 网络编程 m.aspxhome.com