1.游标的介绍
游标是构建在PL/SQL中,用来查询数据,获取记录集合的指针。当PL/SQL游标查询返回多行数据时,这些记录组被称为活动集。Oracle将这种活动集存储在已创建的显示定义的已命名的游标中。Oracle游标是一种用于轻松地处理多行数据的机制,如果没有游标,Oracle开发人员必须单独地、显示的取回并管理游标查询选择的每一行记录。游标的另一个功能是,他包含一个跟踪当前访问的指针,这使程序能够一次处理多条记录。
2.游标的类型
1)隐式游标、
2)显示游标
3)循环游标
4)REF游标
2.1隐式游标的属性
1> %FOUND:表示当前游标是否指向有效行,若是则值为TRUE
2> %NOTFOUND:%NOTFOUND属性与%FOUND属性作用正好相反。如果DML语句没有影响任何行,则%NOTFOUND属性将返回TRUE
3> %ROWCOUNT:%ROWCOUNT属性返回已从游标中读取的记录数。如果DML语句没有影响任何行,则%ROWCOUNT属性将返回0
4> %ISOPEN:%ISOPEN属性返回游标是否是已打开的值。在执行SQL语句后,Oracle自动关闭SQL游标,所以隐式游标的%ISOPEN属性始终为FALSE
3.显示游标
使用显示游标的基本步骤:1.声明游标
语法:CURSOR cursor_name[(parameter [,parameter]...)]
[RETURN return_type] IS select_statement;
cursor_name:指游标的名称
parameter:用于为游标指定输入参数
return_type:定义游标提取行的类型
select_statement:指游标定义的查询语句
2.打开游标
语法:OPEN cursor_name[(parameters)];
cursor_name:指游标的名称
3.从游标取回数据
语法:FETCH cursor_name INTO variables;
cursor_name:指游标名称
variables:变量名
4.关闭游标
语法:CLOSE cursor_name;
4.循环游标
语法:FOR <record_index> IN <cursor_name>
LOOP
<executable statements>
END LOOP;
record_index是PL/SQL声明的记录变量,作用域在FOR循环之内,即在FOR循环之外不能访问此变量。
5.REF游标
语法:TYPE ref_cursor_name IS REF CURSOR
[RETURN record_type]
return语句为可选语句,用于指定游标提取结果集的返回类型。