1
数据库技术及应用
1.10.7.4 7.7.4 读取游标
7.7.4 读取游标

游标打开后,可以使用FETCH语句来读取数据。读取游标的语法如下:

参数说明如下:

●NEXT|PRIOR|FIRST|LAST:用于说明读取数据的位置。分别为读取当前行的下一行;当前行的前一行;结果集的第一行;结果集的最后一行。并且使其置为当前行。

●ABSOLUTE{n|@nvar}:如果n或@nvar为正,则返回从游标头开始向后的第n行,并将返回行变成新的当前行。如果n或@nvar为负,则返回从游标末尾开始向前的第n行,并将返回行变成新的当前行。如果n或@nvar为0,则不返回行。n必须是整数常量,并且@nvar的数据类型必须为smallint、tinyint或int。

●RELATIVE{n|@nvar}:如果n或@nvar为正,则返回从当前行开始向后的第n行,并将返回行变成新的当前行。如果n或@nvar为负,则返回从当前行开始向前的第n行,并将返回行变成新的当前行。如果n或@nvar为0,则返回当前行。在对游标进行第一次提取时,如果在将n或@nvar设置为负数或0的情况下指定FETCH RELATIVE,则不返回行。n必须是整数常量,@nvar的数据类型必须为smallint、tinyint或int。

●GLOBAL:指定cursor_name是全局游标。

●INTO@variable_name[,...n]:说明将读取的游标数据存放到指定的局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果集列的数据类型匹配,或是结果集列数据类型所支持的隐式转换。变量的数目必须与游标选择列表中的列数一致。

注意:用于反映FETCH语句游标函数(全局变量)的是:@@FETCH_STATUS,返回FETCH语句执行后的状态,0表示语句成功,-1表示语句失败或此行不在结果集中,-2表示被提取的行不存在。

【例7-14】从游标STU_CUR中读取数据,假设该游标已经打开。代码如下: