您的位置:首页 > 博客中心 > 数据库 >

PL/SQL 游标详解

时间:2022-03-10 17:19

刚打开游标的时候,是位于一个空行,要用fetch into 才能到第一行。
只是要注意用更新游标的时候,不能在游标期间commit. 否则会报ORA-01002: fetch out of sequence就是COMMIT导致的错误。
在打开有for update的cursor时,系统会给取出的数据加上排他锁(exclusive), 这样在这个锁释放前其他用户不能对这些记录作update、delete和加锁。
而我一旦执行了commit,锁就释放了,游标也变成无效的,再去fetch数据时就出现错误了。因而要把commit放在循环外,等到所有数据处理完成后再commit,然后关闭cursor

隐含游标
--------
又名SQL游标,用于处理单行select into 和 DML语句。
SQL%ISOPEN
SQL%FOUND
SQL%NOTFOUND
SQL%ROWCOUNT

显示游标
--------
用户处理select语句返回的多行数据。
select语句返回多行数据处理方式:[1]显示游标;[2]select ... bulk collect into 集合变量...;

【1】显示游标属性
[1] %ISOPEN 检测游标是否打开。
[2] %FOUND 检测游标结果集是否存在数据。
[3] %NOTFOUND 是否不存在数据。
[4] %ROWCOUNT 游标已提取的实际行数

【2】使用显示游标
[1] 定义游标
CURSOR cursor_name IS select_statement;
[2] 打开游标
OPEN cursor_name;
[3] 提取数据
FECTH cursor_name INTO variable,...
[4] 关闭数据
CLOSE cursor_name;
使用标量变量:

gxlsystem.com,布布扣

 

PL/SQL 游标详解,布布扣,bubuko.com

热门排行

今日推荐

热门手游