`
孔雀王子
  • 浏览: 42157 次
  • 性别: Icon_minigender_1
  • 来自: 河北
文章分类
社区版块
存档分类
最新评论

Oracle数据库管理、应用与开发(十九)

阅读更多

二十三、游标

游标(cursor)可以被看作是指向结果集(a set of rows)中一行的指针(pointer)。在oracle数据库中可以使用显示或隐式两种游标。

23.1 隐式游标

在执行一个sql语句时,oracle服务器将自动创建一个隐式游标,这个游标是内存中处理该语句的工作区域,其中存储了执行SQL语句的结果.通过游标的属性可获得sql语句执行的结果以及游标状态信息。

               游标的主要属性如下:

                    %found 布尔属性  如果sql语句至少影响一行 则为true 否则为false

                    %notfound 布尔属性 %found相反。

                    %isopen 布尔属性 游标是否打开  打开为true 否则为false

                    %rowcount 数字属性 返回受sql语句影响的行数

怎么来使用这些属性呢?很简单,我们可以通过 “sql属性名

来使用。

 

//%rowcount 用来检查受影响的行
SQL> declare
  		2    emp_row emp%rowtype;
  		3  begin
  		4     select * into emp_row from emp where empno=7369;
  		5     dbms_output.put_line(sql%rowcount);
  		6  end;
  		7  /
 
1	 //返回的结果为1
//%found用来检查是否影响到了行
SQL> begin
  		2     update emp set sal=2000 where empno=7369;
  		3     if sql%found then
  		4     dbms_output.put_line('更新记录成功 影响了'||sql%rowcount||'行');
  		5     else
  		6     dbms_output.put_line('未更新记录');
  		7     end if;
  		8  end;
 		9  /
更新记录成功 影响了1行
  		// %notfound 
  		//%isopen
  		一以上两个的使用方式参考 %found进行理解。
另外一种隐式游标cursor for loop可用于处理sql语句的结果集
SQL> begin
  		2  
  		3  for rec in (select * from emp) loop
4      dbms_output.put_line(rec.empno||'/'||rec.ename||'/'||rec.job||'/'||rec.mgr||'/'||rec.hiredate||'/'||rec.sal||'/'||rec.comm||'/'||rec.deptno);
  		5      end loop;
  		6  end;
  		7  /

 

23.2 显示游标

显式游标是在PL/SQL程序中使用包含select语句来声明的游标。如果需要处理从数据库中检索的一组记录,则可以使用显示游标.使用显示游标处理数据需要四个步骤:声明游标,打开游标,检索数据,关闭游标。

23.2.1 声明游标

声明游标就是通过定义游标的名称,游标的特性来声明游标,以及打开游标后就可调用查询语句,声明的语法如下:

                     Cursor cursor_name[parameter[,parameter]….]

                     [return return_type] is select_statement;

Parameter作为游标的输入参数,它可以让用户在打开游标式,向游标传递值。语法如下:

                         Parameter_name [in] datatype[{:=|default} expression]\

举例:

	declare
   		cursor emp_cursor (pno in number(4) default 7369)
   		is select * from emp
       	where empno=pno;

 

23.2.2 打开游标

                           就是指执行声明游标时指定的查询语句。打开的方式只需使用open打开:

                           Open cursor_name(参数);

                           如果没有指定参数就采用默认值执行select语句

23.2.3 检索数据

检索数据就是从检索到的结果集中获取数据保存到变量中,以便变量进行处理。

使用fetch语句找出结果集中的单行,并从中提取单个值传递给主变量。

                           语法如下:

                        Fetch cursor_name into [variable_list[record_variable]]

变量用于存储检索的数据

23.2.4 关闭游标

Close 游标名称

23.2.5 综上所述综合案例

SQL> declare
  			2  cursor emp_cursor (pno in number default 7369)   //声明游标
  			3  is select * from emp where empno=pno;
  			4  
  			5  emp_row emp%rowtype;  //声明变量
  			6  begin
  			7        open emp_cursor(7934);  //打开游标
  			8        fetch emp_cursor into emp_row; //检索数据  结果为一行
 			9        dbms_output.put_line(emp_row.ename);  //输出检索结果
 			10  
 			11        close emp_cursor; //关闭游标
 			12  end;
 			13  /

 

23.2.6 游标for循环

依次读取结果集中的行,当for循环开始时,游标会自动打开(不需要使用open方法开启),每循环读取一次,系统自动读取当前数据(不需要使用fetch),当退出for循环时,游标也会自动关闭(不需要使用close方法)

SQL> declare
  			2  cursor emp_cursor (pno in number default 7369)  //声明游标
  			3  is select * from emp where empno=pno;
 		 	4  
  			5  begin
  	6    for emp_row in emp_cursor(7934) loop //for循环开始时 自动打开游标 并且自动获取数据 自动关闭
  			7     dbms_output.put_line(emp_row.ename);
  			8    end loop;
  			9  end;
 			10  /

 

 

0
1
分享到:
评论

相关推荐

    Oracle数据库系统应用与开发

    Oracle数据库系统是全球广泛使用的...通过深入学习“Oracle数据库系统应用与开发”,无论是初学者还是经验丰富的开发者,都能增强对Oracle数据库的理解,提升开发和管理能力,为实际项目中的高效数据处理打下坚实基础。

    oracle数据库系统应用与开发

    对于初学者来说,理解Oracle数据库系统应用与开发的基础至关重要,这将帮助他们掌握数据库的核心概念,从而在IT行业中建立稳固的基础。 一、Oracle数据库系统概述 Oracle数据库系统是Oracle公司开发的,它采用SQL...

    oracle 数据库管理与应用系统开发代码

    Oracle数据库管理系统是全球广泛使用的大型关系型数据库系统...以上只是Oracle数据库管理与应用系统开发的一部分知识,实际操作中还需要结合具体场景和需求,灵活运用各种工具和技术,以确保系统的稳定运行和高效开发。

    oracle 数据库的应用开发

    oracle 数据库的应用开发 oracle 数据库的应用开发

    Oracle 10g数据库管理、应用与开发标准教程

    由浅入深地介绍了Oracle 10g系统的使用方法和基本管理。...本书全面介绍使用Oracle数据库管理应用与开发知识,适合作为普通高校计算机专业Oracle教材,也可以作为Oracle数据库开发和应用人员的参考资料。

    Oracle 11g中文版数据库管理、应用与开发标准教程

    Oracle 11g中文版数据库管理、应用与开发标准教程

    Oracle数据库的应用开发 Oracle数据库的应用开发.ppt

    Oracle数据库在应用开发中扮演着至关重要的角色,它是一个强大且广泛使用的数据库管理系统,尤其适合企业级的数据存储和处理。本教程将深入讲解如何基于Oracle数据库进行应用开发,包括数据库设计的方法、人事管理...

    Oracle数据库应用与开发

    本课程“Oracle数据库应用与开发”旨在帮助学生深入理解和掌握Oracle数据库的相关知识,包括其基本概念、架构、SQL语言、数据管理、性能优化及应用程序开发等。 一、Oracle数据库基础 Oracle数据库系统基于客户-...

    Oracle数据库应用与开发实例教程

    体验数据库的应用→认识 Oracle的工作环境、体验Oracle 10g环境中常用工具操作→数据库的创建与管理→数据表的创建与管理→管理视图→SQL编程语言→PL/SQL编程语言→管理PLSQL存储过程与触发器 →管理安全性→数据库...

    Oracle数据库应用开发及实践.rar

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位...从数据库设计、SQL编程、PL/SQL开发,到事务处理、安全管理以及备份恢复,全方位覆盖了Oracle数据库应用开发的各个方面。

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

    Oracle10g数据库管理系统是Oracle公司推出的一款强大的关系型数据库管理系统,主要应用于企业级的数据存储、管理和分析。...通过学习和掌握这些内容,可以有效地管理和开发高效、稳定、安全的Oracle数据库应用系统。

    Oracle数据库应用与开发实例教程[吴海波主编][电子教案]

    吴海波主编的《Oracle数据库应用与开发实例教程》是一本深入浅出的教材,旨在帮助学习者掌握Oracle数据库的使用和开发技巧。本教程结合实际案例,提供了丰富的学习材料,对于学生和专业人士来说都是宝贵的参考资料。...

    Oracle 数据库管理与应用系统开发

    Oracle 数据库管理与应用系统开发: Oracle编程 创建存储过程 创建自定义类型 使用存储过程和函数 创建存储过程 创建函数 使用触发器和作业 创建触发器 创建序列等 跟踪和调试 创建存储过程 创建...

    Oracle数据库应用与开发案例教程

    《Oracle数据库应用与开发案例教程》是一本专为学习Oracle数据库应用与开发的读者精心编写的教材。本书深入浅出地介绍了Oracle数据库的基础知识、管理技巧以及开发实践,旨在帮助读者掌握Oracle数据库的核心技术和...

    Oracle数据库的开发与应用培训.doc

    Oracle数据库的开发与应用培训

    ORACLe数据库管理员教程

    Oracle数据库管理员教程旨在帮助读者...通过阅读指定的参考书籍,如《ORACLE数据库系统基础》、《数据库管理及应用开发》和《ORACLE数据库管理员教程》,可以深入理解Oracle数据库管理的各个方面,提升DBA的专业技能。

Global site tag (gtag.js) - Google Analytics