java.sql.SQLException: Cursor is closed

参考资料
1 http://topic.csdn.net/u/20101120/15/f0189dc8-da55-447b-920c-fe43ab857d00.html
2 各种常见java.sql.SQLException归纳 (转)
http://hi.baidu.com/msalex/blog/item/e1f629302e18f110ebc4afe9.html

一个很奇怪的问题:
在Oracle存储中如果返回了一个或者多个游标时,如你多写了select语句就会出现以上错误;
去掉select就不会报错!
这是由参考资料1中得到的结论!

原代码如下:
create or replace procedure proc_A(_id in varchar2,message out varchar2,j out Package.j)--包内声明的游标
as
tcount number;
begin
 select count(1)  into tcount from Table where id=_id;
 if tcount > 0 then
  open j for select * from Table where id=_id;
  end if;
--错误在此,如tcount=0时,游标就为空,处于关闭状态,在程序调用时就会出错!

WHEN OTHERS THEN 
end proc_A;

你可能感兴趣的:(java,oracle,sql,.net,J#)