日期:2014-05-17  浏览次数:20826 次

一个关于游标无效的问题
我有两个存储过程,过程A返回一个游标,这个游标是查询在过程A中的一个临时表中的所有数据.
然后过程B会调用过程A并取游标里的数据...

现在有个很奇怪的问题,如果过程A中的那个临时表中没有数据,那在过程B中fetch游标就会报ORA-01001无效的游标...
如果有数据那就没问题...

我单独调用过程A..而且同样的参数..临时表也没数据,但是我读取这个游标就没问题...

现在如何在过程B中判断是程序出错了还是只是没有数据返回?过程A是不能动的......

------解决方案--------------------
在A中的到游标,如果你没有fetch的话,在B中判断这个游标有没有值,可以使用
if retrun_cursor is null then
..
end if;
的形式,先判断游标是不是真的已经有返回值了,
然后哦再fetch就应该可以了