plsql 执行procedure 显示游标返回的结果报错

sourcecode1 2014-10-09 08:12:38
在pl/sql command window中调用存储过程,需要传给存储过程一个cursor,
调用时报错,代码:
create or replace package pkg_Report IS
type rcTypeCursor is ref cursor;
procedure procReport(startDate in varchar2,
endDate in varchar2,
retCursor IN OUT rcTypeCursor);

end;


var result pkg_Report.rcTypeCursor;
exec proc_report('2014-10-11','2014-10-11', :result);
执行这部的时候报错,unknown datatype
result 换成ref cursor 或refcusor时,报REFCURSOR not supported。
请问是什么原因,在command window 中可以显示游标返回的结果集吗


另外换成在sql plus中执行,代码:
var result refcusor;
exec proc_report('2014-10-11','2014-10-11', :result);
--到这步执行成功。
print result;时报错误:
ERROR:
ORA-03113: end-of-file on communication channel
请问如何解决。
...全文
541 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sourcecode1 2014-12-14
  • 打赏
  • 举报
回复
没有满意的答案,但还是给你们分数吧,都是为了分数。
sourcecode1 2014-10-15
  • 打赏
  • 举报
回复
引用 4 楼 u010184335 的回复:
你试试在工具里面调试一下,通信通道的文件结尾这个错误好怪
在工具里调试过,把sql语句打印出来了,里面用到了pivot for in 语句, 其中在in子句后面有32项,都是字符串,其中有的字符串比较长, 网上也查了下,说的很模糊,说是 客户端通信不能正确处理 ,都知道是这个错, 但不知道怎么解决,后来我把太长的或者是删除一些项,就能正确抽取数据了。
sourcecode1 2014-10-15
  • 打赏
  • 举报
回复
引用 2 楼 sourcecode1 的回复:
[quote=引用 1 楼 yuanyannan123 的回复:] 你要循环去打印游标哦
这样也可以打印的,但是报错,查了下也有很多人是这样来打印游标的。[/quote] 包编译是成功的。
  • 打赏
  • 举报
回复
你试试在工具里面调试一下,通信通道的文件结尾这个错误好怪
  • 打赏
  • 举报
回复
你这个包编译成功了吗
sourcecode1 2014-10-10
  • 打赏
  • 举报
回复
引用 1 楼 yuanyannan123 的回复:
你要循环去打印游标哦
这样也可以打印的,但是报错,查了下也有很多人是这样来打印游标的。
yuanyannan123 2014-10-10
  • 打赏
  • 举报
回复
你要循环去打印游标哦

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧