`

Oracle 10g数据库游标的使用学习二

 
阅读更多
游标格式:
CURSOR cursor_name[(parameter[,parameter]...)][return return_type]IS select_statement;


游标的声明
/*
无参数的游标声明
*/
cursor c1 is select t.business_id , t.business_type from tbl_flow_work t;

/*
有参数的游标声明
*/
cursor c2 return tbl_flow_work%rowtype is select t.business_id , t.business_type from t bl_flow_work t where 	t.flow_work_id =1;
cursor cursor_a(temp_bussid number) is select tba.business_name as bn from tbl_business_a tba where tba.business_id = temp_bussid;


游标的使用:
/*
游标只有在打开才能执行查询操作,OPEN语句会把满足查询条件的行锁住,
执行OPEN语句不会选取出结果集中的记录,只有在使用FETCH语句的时候才能将数据读取出来
*/
open c(parameter);
	loop fetch c into v_businessname;
    exit when c%notfound;
		dbms_output.put_line(v_businessname);
	end loop;
close c;


/*
在大多数需要使用显示游标的情况下,都可以用一个游标FOR循环来代替OPEN、FETCH和CLOSE语句,这样可以省去一些繁琐的代码。
游标FOR隐式地声明了一个%ROWTYPE类型的记录作为它的 循环索引,打开游标,
然后反复地执行把结果集中的行放到索引中去,最后在所有行都被处理完成后关闭游标。
*/
[/b]
for cfw in cursor_flowwork loop
  v_busstype := cfw.bt;
  dbms_output.put_line(v_busstype);
end loop;


实践

手动打开游标
-- Created on 2012/12/11 by ZHENGTIAN 
declare 
  -- 定义游标变量
  flow_name_like varchar2(256):= 'zt';
  flow_name varchar2(256);
  flow_code varchar2(256);
  cursor flow_cursor(flow_name_prefix varchar2) is select f.flow_name,f.flow_code from pdc_flow f where f.flow_name like '%'||flow_name_prefix||'%';
begin
  open flow_cursor(flow_name_like);
  	loop fetch flow_cursor into flow_name,flow_code;
      exit when flow_cursor%notfound;
  		dbms_output.put_line('flow_name:'||flow_name||';flow_code:'||flow_code);
  	end loop;
  close flow_cursor;
end;


用for循环使用游标,省略手动打开游标语句
-- Created on 2012/12/11 by ZHENGTIAN 
declare 
  -- 定义游标变量
  flow_name_like varchar2(256):= 'zt';
  flow_name varchar2(256);
  flow_code varchar2(256);
  cursor flow_cursor(flow_name_prefix varchar2) is select f.flow_name,f.flow_code from pdc_flow f where f.flow_name like '%'||flow_name_prefix||'%';
begin
  /*open flow_cursor(flow_name_like);
  	loop fetch flow_cursor into flow_name,flow_code;
      exit when flow_cursor%notfound;
  		dbms_output.put_line('flow_name:'||flow_name||';flow_code:'||flow_code);
  	end loop;
  close flow_cursor;*/
  for flow in flow_cursor(flow_name_like) loop
    flow_name := flow.flow_name;
    flow_code :=flow.flow_code;
    dbms_output.put_line('flow_name:'||flow_name||';flow_code:'||flow_code);
  end loop;
end;
分享到:
评论

相关推荐

    oracle10g 函数返回游标类型

    在Oracle 10g数据库系统中,开发人员可以利用PL/SQL语言来创建复杂的存储过程、函数以及包,以执行数据库操作。其中,一个重要的功能是能够创建返回游标类型的函数,这种函数允许用户从数据库中检索并返回一组记录,...

    Oracle11g 数据库中文 文档

    Oracle 11g数据库是Oracle公司推出的一款关系型数据库管理系统,是10g版本的升级,提供了更高级别的性能、安全性和可管理性。这款数据库系统广泛应用于企业级数据存储和处理,支持复杂的事务处理、数据仓库以及...

    oracle 10g数据库java开发

    Oracle 10g数据库与Java开发是IT领域中一个重要的结合点,特别是在企业级应用开发中,这种组合被广泛使用。Oracle 10g是一款功能强大的关系型数据库管理系统,而Java作为一种多平台、面向对象的编程语言,因其跨平台...

    oracle10G和oracle11G的OCI.dll

    比如,使用Oracle 10G的oci.dll可能无法连接到Oracle 11G数据库,反之亦然。因此,确保oci.dll与Navicat以及目标数据库版本的匹配至关重要。 6. 安全性增强:Oracle 11G在安全性方面做了大量改进,包括增强了身份...

    Oracle 11g数据库应用简明教程

    第十二和第十三章可能涵盖数据库的高级特性,比如PL/SQL编程、存储过程、触发器和游标,这些都是进行数据库应用程序开发的基础。 第十四章和第十五章可能讲解数据库的高可用性解决方案,如RAC(Real Application ...

    Oracle 10g数据库海量数据分页查询优化.pdf

    游标变量是 Oracle 10g 数据库中的一种特殊变量,可以用来存储查询结果。通过使用游标变量,可以减少查询时间,提高查询效率。此外,游标变量还可以用来实现批绑定,进一步提高查询效率。 batch binding 批绑定...

    Oracle 11g数据库系统设计、开发、管理与应用

    《Oracle 11g数据库系统设计、开发、管理与应用》是一本全面涵盖Oracle数据库技术的专业教程,适合数据库管理员(DBA)、开发人员以及对Oracle技术感兴趣的学者学习。PDF格式的书籍便于电子阅读和存储,使得读者可以...

    Oracle10g数据库管理与应用系统开发光盘

    Oracle10g数据库管理系统是Oracle公司推出的一款强大的关系型数据库管理系统,主要应用于企业级的数据存储、管理和分析。在Oracle10g中,有许多关键的知识点和特性,对于数据库管理员(DBA)和应用开发者来说,深入...

    oracle存储过程使用游标对多表操作例子

    标题:“oracle存储过程使用游标对多表操作例子”直接指出了文章的主题是关于在Oracle环境下,如何利用存储过程和游标实现跨多个表的数据处理。描述部分重复了标题内容,强调了示例性质,表明文章将通过具体实例来...

    Oracle 10g数据库基础教程 [电子教案]

    Oracle 10g数据库是Oracle公司推出的企业级关系型数据库管理系统,它在数据库管理领域具有广泛的应用。本教程将深入探讨Oracle 10g的基础知识,帮助初学者掌握这一强大的数据库系统。 首先,我们从“第1章 oracle...

    navicat链接oracle11g 数据库oci

    在本场景中,"navicat链接oracle11g 数据库oci"的问题指的是Navicat这款数据库管理工具在尝试连接Oracle 11g数据库时遇到了oci相关的问题,可能是由于Navicat缺少对oci的支持或者oci库未正确配置导致的。 oci的全称...

    oracle数据库驱动,支持oracle11g数据库

    Oracle 11g数据库还支持高级特性,如存储过程、游标、事务管理、并发控制、索引、触发器、视图等。在开发过程中,开发者可以利用JDBC API实现这些功能,提高应用的效率和复杂性。 在实际应用中,为了优化性能和确保...

    oracle10G数据库应用教程

    总结,Oracle 10g数据库应用教程全面覆盖了数据库的生命周期,从安装到使用,再到维护,旨在帮助学习者掌握Oracle数据库的核心技术和管理方法,为实际工作中的数据库管理打下坚实基础。通过深入学习和实践,你将能够...

    Oracle 10g数据库基础教程课件(第2版)-课件

    通过本教程的学习,读者将能够掌握Oracle 10g数据库的基础知识,包括安装配置、SQL操作、对象管理、安全性、备份恢复、性能优化以及新特性应用,为进一步深入学习和使用Oracle数据库打下坚实基础。

    Oracle10G数据库应用

    Oracle10G数据库应用是IT领域中的一个重要主题,尤其对于初学者来说,它是理解数据库管理和开发的基础。Oracle作为世界上最广泛使用的数据库管理系统之一,其10G版本提供了许多关键特性和功能,使得数据存储、管理及...

    Oracle10g数据库管理与应用系统开发光盘.rar

    总结,Oracle 10g数据库管理系统为数据库管理员和开发者提供了强大的工具和特性,从高性能的数据存储到灵活的应用系统开发,再到可靠的灾难恢复机制,都是其突出亮点。理解并熟练掌握这些知识点,对于在Oracle环境中...

    oracle11g数据库管理2 中文版教材 (1Z0-043教材)

    "Oracle11g数据库管理2 中文版教材 (1Z0-043教材)"是针对1Z0-043考试的官方教程,这本教材详细阐述了Oracle 11g数据库管理的高级主题,旨在帮助考生理解和掌握数据库的高级概念和技术。1Z0-043是Oracle认证路径中的...

    oracle存储过程游标

    ### Oracle 存储过程与游标使用详解 在Oracle数据库管理中,存储过程与游标是两个非常重要的概念。它们可以提高数据处理的效率、增强应用程序的灵活性,并且能够简化复杂的数据库操作。本文将根据提供的内容,深入...

Global site tag (gtag.js) - Google Analytics