shiner 发表于 2008-07-01 14:37

Sybase 过程中嵌套游标的问题

大概是这样一个嵌套游标组成的循环:

declare 外层 cursor for select ....
open 外层
fetch 外层
while while @@sqlstatus = 0
begin
    .
    .
    .
    declare 内层 cursor for select ....
    open 内层
    fetch 内层
    while while @@sqlstatus = 0
    begin
                .
                .
                .
                fetch 内层
    end
    close 内层
    fetch 外层
end
close 外层

但每次外层循环出现,内层游标的重复定义,出如下错:

Server Message:Number563, Severity16
Server 'onlnserver', Procedure 'tele_comm_reminder', Line 294:
There is already another cursor with the name 'cur_debitreminder' at the nesting level '2'.

shiner 发表于 2008-07-01 16:08

CU 上的C版很活跃,Sybase版太冷清了...

shiner 发表于 2008-07-01 16:14

没有人遇到过这样的错误吗?提提意见也行啊,发表一下自己的看法也行啊...
集思广益嘛,

shiner 发表于 2008-07-01 20:21

唉....我问题没有描述清楚?

shiner 发表于 2008-07-02 10:36

shit, 网上搜了一下终于找到了答案。
原来内层游标用完关闭后需要释放它在内存中占用的空间(deallocate cursor 内层)
这样外层循环不会导致内层游标的重复定义了。
页: [1]
查看完整版本: Sybase 过程中嵌套游标的问题