码迷,mamicode.com
首页 > 数据库 > 详细

关于Oracle游标out参数多层调用的BUG,ORA-06504

时间:2017-03-07 13:03:51      阅读:831      评论:0      收藏:0      [点我收藏+]

标签:调用   数据   子程序   查询   pen   调试   oracle   类型   程序   

数据库版本

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit

测试代码

declare

p_cur sys_refcursor;

v_ename varchar2(50);

procedure pro_1(p_cur out sys_refcursor) as

begin

--子程序1

open p_cur for

select ename from scott.emp;

end;

 

procedure pro_2(p_cur out sys_refcursor) as

begin

--子程序2

pro_1(p_cur);

end;

 

begin

--主程序

pro_2(p_cur);

fetch p_cur

into v_ename;

end;

运行报错:

ORA-06504: PL/SQL: 结果集变量或查询的返回类型不匹配

经调试发现在主程序fetch时出错。

同样代码在数据库 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit 版本下正常执行。

关于Oracle游标out参数多层调用的BUG,ORA-06504

标签:调用   数据   子程序   查询   pen   调试   oracle   类型   程序   

原文地址:http://www.cnblogs.com/mellowsmile/p/6513902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!