为什么这个Sybase fetch语句不起作用?

时间:2011-04-07 14:55:26

标签: sybase

declare @coltype char(60)
declare @cname char(60)
declare col_crsr cursor for SELECT cname,coltype from sys.syscolumns
                             where tname = 'abmc_customer_user'
                               for update of cname
set cursor rows 4 for col_crsr
open col_crsr
fetch col_crsr
close col_crsr
deallocate cursor col_crsr

在此,执行fetch后,它应显示行但显示执行时间:0.0031sec。 有什么问题?

2 个答案:

答案 0 :(得分:0)

在SQL的大多数方言中,你都有一个围绕FETCH的循环来获取多行,你还要指定数据的去向(它将被提取到哪个变量),你会必须采取一些措施才能显示数据。

答案 1 :(得分:0)

您可以像这样尝试循环游标并将值提取到变量中然后选择变量......

声明@coltype char(60)

声明@cname char(60)

为syscyscolumns声明SELECT cname,coltype的col_crsr游标                              其中tname ='abmc_customer_user'                                更新cname

为col_crsr设置游标行4

打开col_crsr WITH HOLD

获取col_crsr INTO @ coltype,@ cname

WHILE(@@ sqlstatus = 0)

BEGIN

SELECT @ coltype,@ cname

FETCH NEXT col_crsr INTO @ coltype,@ cname

END

关闭col_crsr

取消分配游标col_crsr

相关问题