第一种使用loop 循环
loop
fetch c_postype into v_postype,v_description ;
exit when c_postype%notfound;
……
end loop
备注:exit when语句一定要紧跟在fetch之后。必避免多余的数据处理。 而处理逻辑需要跟在exit when之后。这一点需要多加小心。最后循环结束后要记得关闭游标。
第二种使用while循环
fetch c_postype into v_postype,v_description;
while c_postype%found loop
……
fetch c_postype into v_postype,v_description ;
end loop;
备注:我们知道了一个游标打开后,必须执行一次fetch语句,游标的属性才会起作用。所以使用while 循环时,就需要在循环之前进行一次fetch动作。 而且数据处理动作必须放在循环体内的fetch方法之前。循环体内的fetch方法要放在最后。否则就会多处理一次。这一点也要非常的小心。
总之,使用while来循环处理游标是最复杂的方法。
第三种 for循环
for v_pos in c_postype loop
v_postype := v_pos.pos_type;
v_description := v_pos.description;
…
end loop;
备注:可见for循环是比较简单实用的方法。
首先,它会自动open和close游标。解决了你忘记打开或关闭游标的烦恼。
其它,自动定义了一个记录类型及声明该类型的变量,并自动fetch数据到这个变量中。
由此可见,for循环是用来循环游标的最好方法。高效,简洁,安全。
注意:我们需要注意v_pos 这个变量无需要在循环外进行声明,无需要为其指定数据类型。
它应该是一个记录类型,具体的结构是由游标决定的。
这个变量的作用域仅仅是在循环体内。
把v_pos看作一个记录变量就可以了,如果要获得某一个值就像调用记录一样就可以了。
如v_pos.pos_type
分享到:
相关推荐
T100ERP调用ORACLE 数据库存储过程(返回值为游标类型)处理为JSON和数组方法
Oracle数据库存储过程触发器包是使用事例,可以说经典
使用游标更新数据库 使用游标更新数据库是指在游标定位下,修改或删除表中指定的数据行。使用游标对数据进行更新可以提高数据库的性能和效率。 1. 游标更新的基本概念 游标是数据库中的一种数据结构,它可以用来...
Oracle12c数据库基础教程Oracle12c数据库游标、存储过程和触发器.pptx
第一章 oracle存储过程概述 2 1.1 存储过程基本结构(PROCEDURE) 3 1.1.1创建存储过程 3 1.1.2 存储过程删除 5 1.1.3 调用存储过程 5 1.2存储函数(FUNCTIONE) 6 1.2.1 创建存储函数 6 1.2.2 删除存储函数 7 1.3 包...
oracle数据库 游标、存储过程和触发器
oracle数据库存储过程相关知识简介,存储过程创建语法讲解,包括判断语句、循环、数组遍历、游标使用,后附实例
oracle数据库存储的语法,使用方法,定义变量,申明变量,游标以及完整的范例,仅供大家参考学习,谢谢大家
oracle数据库忽然连不上了,一查是游标数量超了。 1.查看游标数 show parameter open_cursors 2.修改游标数 alter system set open_cursors = 10000; 3.获取打开的游标数 select o.sid, osuser, machine, count...
oracle 存储过程批量提交
详细介绍了oracle数据库,从表空间的创建到存储过程、游标的使用等内容,通过阅读这篇文档能够让各位对oracle数据库有个深入的理解和掌握
学生信息管理系统Oracle数据库
Oracle 存储过程编译是指在 Oracle 数据库中编译存储过程的过程。存储过程是一种预编译的 SQL 语句集合,用于实现特定的业务逻辑。编译存储过程是将其转换为机器代码,以提高执行速度和效率。 在本例中,我们将讨论...
* Oracle 数据库的存储结构:数据文件、控制文件、日志文件 ### 4. 第四讲:表的设计、创建及维护 * 表的设计原则和方法 * 表的创建和修改 * 表的维护和优化 ### 5. 第五讲:数据完整性与约束 * 数据完整性的...
一份完整的数据库系统设计报告,设计的是家庭医疗信息系统。有完整的代码截图,和数据文件。是学校要求的期末大作业。还设计了存储函数,游标,触发器,和存储过程等各种功能
本实验五 - 存储过程与触发器旨在掌握 Oracle 数据库编程语言 PL/SQL 的基础知识,掌握游标的四个使用步骤,掌握触发器的原理,学会定义触发器,以及掌握存储过程的定义方法和执行方法。通过本实验,我们可以更好地...
oracle数据库的优化 数据库的优化 2 概述 2 监控数据库的性能: 2 优化数据库磁盘I/O 2 建立和优化数据库文件的方针: 6 监控磁盘I/O的方法: 7 优化回滚段 7 检测回滚段争用: 7 通过以下公式计算等待比率: 8 若...
游标是SQL的一个内存工作区,由系统或用户以...游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。
如下存储过程使用游标遍历所有数据: CREATE OR REPLACE PROCEDURE "CFFTEST"."SELECT_STUDENT"("id" IN INT) AS myId int; myName varchar(50); cursor myCursor is select id, name from cfftest.student; ...
oracle数据库的相关知识,包含dml dql,索引,视图,游标,存储过程等