一、基本概念
1)游标:指向上下文区的句柄或指针。
2)上下文区:
为了处理SQL语句,Oracle将在内存中分配一个数据缓冲区域,这就是上下文区。这个区包含了已经处理完的行数、指向被分析语句的指针,查询语句返回的数据活动集。
3)游标用途:
用来处理从数据库中检索的多行记录(使用SELECT语句)。利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集。
4)游标打开:
执行相应的select语句,把查询结果取到缓冲区,指针指向结果集首记录;准确地说,开辟上下文区,返回上下文区首地址。
5)游标关闭:
撤销游标与活动集的关联,释放缓冲区占用的内存资源。
二、使用方法
(1)显式游标:
显式游标被用于处理返回多行数据的SELECT语句,游标名通过CURSOR….IS语句显式地赋给SELECT语句。
在PL/SQL中处理显式游标所必需的四个步骤:
1)声明游标;CURSORcursor_nameISselect_statement
2)为查询打开游标;OPENcursor_name
3)取得结果放入PL/SQL变量中;
FETCHcursor_nameINTOlist_of_variables;
FETCHcursor_nameINTOPL/SQL_record;
4)关闭游标。CLOSEcursor_name
注意:在声明游标时,select_statement不能包含INTO子句。当使用显式游标时,INTO子句是FETCH语句的一部分。
(2)隐式游标
所有的隐式游标都被假设为只返回一条记录。
使用隐式游标时,用户无需进行声明、打开及关闭。PL/SQL隐含地打开、处理,然后关掉游标。
例如:
…….
SELECTstudentNo,studentName
INTOcurStudentNo,curStudentName
FROMStudentRecord
WHEREname=’gg’;
上述游标自动打开,并把相关值赋给对应变量,然后关闭。执行完后,PL/SQL变量curStudentNo,curStudentName中已经有了值。
参考资料:
Oracle数据库实用教程机械工业出版社浦云明
数据库系统概论高等教育出版社萨师煊