首页 > 经验记录 > 数据库 > PL/SQL 游标简介—隐式游标/显示游标

PL/SQL 游标简介—隐式游标/显示游标

在Oraacle数据库之中,游标分为以下两种类型:

       静态游标:结果集已存在(静态定义)的游标。分为隐式和显示

       隐式游标:所有DML语句为隐式游标,通过隐式游标属性可以获取SQL语句信息

       显示游标:用户显示声明的游标,即指定结果集。当返回结果超过一行时,就需要一个显示游标

 

REF游标:动态管理连结果集的临时对象

 

 

隐式游标

       在PL/SQL块之中所编写的每条sql语句实际上就是隐式游标。通过在DML操作之后使用“SQL%ROWCOUNT”属性,可以知道语句所改变的行数(INSERT、UPDATE、DELETE返回更新行数,SELECT返回查询行数)

 

隐式游标属性:

NO. 属性 描述
1 %FOUND 当用户使用DML操作数据时,该属性返回TRUE
2 %ISOPEN 判断游标是否打开,该属性对于任何的隐式游标总是返回FALSE,表示已经打开
3 %NOTFOUND 如果执行DML操作时没有返回的数据行,返回TRUE,否则返回FALSE
4 %ROWCOUNT 返回更新的操作的行数或SELECT INTO返回的行数

 

 

 

显示游标

       隐式游标是用户操作SQL时自动生成的,而显示游标指的是在声明快中直接定义的游标,而在每一个游标之中,都会保存SELECT查询后的返回结果,显示游标的创建语法如下:

创建显示游标语法

       CURSOR 游标名称([参数列表]) [RETURN 返回值类型]

              IS 子查询

       [FOR UPDATE (OF 数据列,数据列,)] [NOWAIT]

 

       在PL/SQL中显示游标的操作步骤如下:

              第一步: 声明游标(CURSOR 游标名称 IS 查询语句)。 使用CURSOR定义;

              第二步: 为查询打开游标(语法:OPEN 游标名称)。使用OPEN操作,当游标打开时会首先检查绑定此游标的变量内容,之后在确定所使用的查询结果集,最后游标将指针指向结果集的第一行。如果用户定义的是一个带参数的游标,则会在打开游标时为游标设置指定的参数值;

              第三步: 取得结果放入PL/SQL变量中(语法:FETCH 游标名称 INTO ROWTYP变量)。使用循环和FETCH…INTO…操作;

              第四步: 关闭游标(语法: CLOSE 游标名称)。使用CLOSE操作。

 

 

显示游标属性:

NO. 属性 描述
1 %FOUND 光标打开后未曾执行FETCH,则值为NULL;如果最近一次在该光标上执行的FETCH返回一行,则值为TRUE,否则为FALSE。
2 %ISOPEN 如果该光标是打开状态值为TRUE,否贼为FALSE
3 %NOTFOUND 如果该光标最近一次FETCH语句没有返回行,则值为TRUE。否则为FALSE。如果光标刚刚打开还未执行FETCH,则值为NULL
4 %ROWCOUNT 其值在该光标上到目前为止执行FETCH语句所返回的行数。光标打开时,%ROWCOUNT初始化为零,每执行一次FETCH如果返回一行则%ROWCOUNT增加1

 

 

 显示游标代码示例:

 

 

 


EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00