定义
- 逐行处理查询结果,以编程的方式访问数据
游标分类
隐式游标:在PL/SQL中执行DML SQL语句时自动创建隐式游标
- 隐式游标自动生命、打开和关闭,名字为SQL
- 隐式游标的属性:
- %FOUND:SQL语句影响一行或多行时为TRUE
- %NOTFOUND:SQL语句没有影响任何行时为TRUE
- %ROWCOUNT:语句影响的行数
- %ISOPEN:是否打开状态,始终为FALSE
1 | BEGIN |
显式游标:现式游标用于处理返回多行的查询
1 | DECLARE |
- 可以给游标加参数,提高灵活性
1 | DECLARE |
- 可以用游标删除和更新活动集中的行,必须使用select … for update语句和where current of
1 | CURSOR <cursor_name> IS SELECT statement FOR UPDATE; |
- 循环游标用于简化游标处理代码,用于从游标中提出所有记录时使用
1 | DECLARE |
fetch … bulk collect into
1 | DECLARE |
REF游标:REF游标用于处理运行时才能确定的动态SQL查询的结果
创建游标变量需要两个步骤:
- 声明REF游标类型
- 声明REF游标类型的变量
声明REF游标类型的语法:
1 | TYPE <ref_cursor_name> IS REF CURSOR |
- 打开游标变量的语法:
1 | OPEN cursor_name FOR select_statement; |
1 | DECLARE |