oracle 游标管理
游标:
游标:逐行处理查询结果,以编程的方式访问数据。
游标的分类:
隐式游标:用于处理返回单行的结果。
显式游标:用于处理返回多行的结果
REF(动态游标):用于处理动态SQL语句返回的结果。
隐式游标
名称:统一为SQL。用于判断最近执行的那一条DML语句。
Select into 也是隐式游标。
只能够返回一行的数据。
显示游标
步骤:
A:声明一个显示游标
cursor 游标名字[(参数变量名 类型,参数变量名2 类型...)] is 查询结果集语句 [for update]
B:打开游标
open 游标名字[实参值,实参值...]
C:提取游标中的数据到变量。(做循环)
fetch 游标名字 into 接收变量;
D:关闭游标。
close 游标名称
显示游标的可更新用法
定义 后 加上for update
提取后
修改或者删除语句 where current of 游标名称。
直接用update,delete来代替可更新的显示游标。
游标for循环
for 一个游标FOR循环可以隐含的实现OPEN,FETCH,CLOSE游标以及循环处理结果集的功能。
语法
FOR 接收变量 IN 游标名字
LOOP
<executable statements>
END LOOP;
REF的动态游标。
强类型的REF游标(指定游标返回值类型)
TYPE my_curtype IS REF CURSOR
RETURN stud_det%ROWTYPE;
order_cur my_curtype;
弱类型的REF游标,才能够执行动态SQL语句。
不指定返回值类型 返回值类型由游标动态执行决定
TYPE my_ctype IS REF CURSOR;
stud_cur my_ctype;