1.5 PLSQL中的游标
1.5.1游标的概念
游标(cuscor)可以看作私有sql区的句柄或名称,在sql语句执行过程中保存解析后的语句和其他信息
1.隐式游标与显式游标
游标分为隐式游标和显式游标
1)隐式游标
当运行DML与SELECT INTO语句时,PLSQL会打开一个隐式游标,隐式游标自动打开,自动关闭,无法人工干预
2)显示游标
用户在代码中定义的游标,并由用户在程序中控制打开,检索,关闭
----》操作分为4步:定义游标,打开游标,检索游标,关闭游标
----》只能指向一行,可以循环检索(叫做游标循环)
----》游标循环的使用频率高
2.游标的属性
1)隐式游标的属性
由于没有显示的声明游标,所以隐式游标也没有名字,引用隐式游标属性只能使用关键字sql,如果语句块中存在多个dml和select into ,则隐式游标属性为最近执行的sql的属性
A)SQL%ROWCOUNT
返回的行数
B)SQL%ISOPEN
C)SQL%FOUND
%FOUND:是否涉及到行,由于该表被删除,所有的行记录都被删除了,因此返回rows found
D)SQL%NOTFOUND
%NOTFOUND :是否涉及到行,涉及不到行,显示为真
2)显示游标属性
A)SQL%ROWCOUNT
累计行数
B)SQL%ISOPEN
%ISOPEN:通常使用在异常判断里
C)SQL%FOUND
D)SQL%NOTFOUND
效果和%FOUND相反
3.游标的循环
由于显式游标的%ROWCOUNT,只能提取一行数据,而游标对应的sql语句可能返回很多的行,而游标只能一次提取一行,此时我们需要使用循环遍历这些行
1)简单游标循环
-
WHILE游标循环
While游标循环需要写fetch2次
-
FOR游标循环(常用)
游标FOR循环比较简单,并且自动打开游标,自动关闭游标。
游标FOR循环有两种实现形式
R----》表示记录类型变量