SQL @@FETCH_STATUS函数
SQL中的 @@FETCH_STATUS 函数用于检索最近打开的游标的当前获取状态。这个函数是非确定性的,并且是应用程序中所有游标的全局函数。因为结果是不确定的。
例如,用户可能从一个游标中运行一个FETCH语句,然后使用一个存储过程来打开并处理另一个游标的输出。与在调用存储过程之前执行的FETCH语句不同,@@FETCH_STATUS在从被调用的存储过程返回控制后反映了在存储过程内执行的最后一个FETCH。
SQL @@FETCH_STATUS函数返回如下所示的整数值。
序号 | 返回值&描述 |
---|---|
1 | -m 表示抓取成功。 |
2 | -1 表示抓取失败或行超出结果集。 |
3 | -2 表示行未找到。 |
4 | -9 表示指针未执行抓取操作。 |
语法
下面是 SQL @@FETCH_STATUS() 函数的语法 −
参数
它不接受任何类型的参数。
示例
通过使用以下查询,让我们创建一个名为Workers的表,在我们的示例中将进一步使用该表-
现在,让我们使用以下查询中的INSERT语句向Workers表中插入一些记录:
验证
让我们通过以下查询检查表是否已成功创建:
输出
执行上述查询后,将生成如下所示的输出:
示例
在下面的示例中,我们将使用while循环来控制@@fetch_status的游标活动,方法如下 −
输出
当我们执行以上查询时,输出结果如下所示:
示例
让我们看下面的示例,我们将使用以下查询声明具有没有列并选择仅为NULL的光标:
输出
执行上述查询时,输出如下 −
示例
让我们看看下面的查询,我们将创建一个演示表,插入一个值,执行fetch_status并删除表,并使用以下查询检查结果 −
输出
执行上述查询后,输出结果如下所示 –
示例
让我们来看一下以下查询,我们将执行fetch_status,并使用以下查询读取游标变量中的所有行 –
输出
在执行上述查询后,输出如下所示 –