读取游标

Posted WhiteSpace

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取游标相关的知识,希望对你有一定的参考价值。

读取游标是指使用fetch语句从打开的游标中逐行读取数据,以进行相关处理

语法:

fetch

{[first|last|prior|next|relative|absolute n]}

from <游标名>

[Into @<变量> [,….n]]

First :返回游标中第一行,并将其设为当前行。

Last 返回游标中的最后一行,并将其设为当前行。

Prior:返回结果集中当前行的前一行,并将其设为当前行。如果 Fetch prior是第一次读取游标中的数据,则无记录返回,并把游标位置设为第一行。

Next  返回结果集中当前行的下一行,并将其设为当前行。如果Fetch Next是第一次读取游标中数据,则返回结果集中的是第一行而不是第二行。Next 是默认的游标提取选项

Relative n:按照相对位置读取数据。如果n为正数,则返回从当前行开始向后的n行,并将其设为当前行;如果n为负数,则返回从当前行开始向前的第n行,并将其设为当前行。

Absolute n:按照绝对位置读取数据。如果n为正数,则返回从游标头开始向后的第n行,并将其设为当前行:如果n为负数,则返回从游标末尾开始第n行,并将其设为当前行。

Into @<变量> [,…..n] : 将读取的列的数据存放在多个变量中。变量的数量、排列顺序以及数据类型必须与声明游标时使用的select语句中引用的数据列数量、排列顺序以及数据类型保持一致。

 

使用Fetch语句一次可以提取一条记录。通过检测全局变量@@Fetch_status 的值,可以获得Fetch语句的状态信息,该状态信息可以用来判断该Fetch语句返回数据的有效性。@@Fetch_status变量有3个不同的返回值,如

返回值

描述

0

Fetch语句执行成功

-1

Fetch语句执行失败或行不在结果集中

-2

读取的行不存储

 

从上面的例子mycursor 读取数据,并查看Fetch 语句的状态

 

Fetch next from mycursor

select ‘执行状态’[email protected]@Fetch_status

 

以上是关于读取游标的主要内容,如果未能解决你的问题,请参考以下文章

sql server 中游标详解

读取游标

mysql之游标

如何在 PL / SQL 中读取另一个游标内的游标

游标学习

mysql 游标(循环读取一行数据插入到另一张表)