鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 数据库 > oracle > >

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

来源:互联网 作者:佚名 时间:2018-02-03 10:51
数据库版本 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 sc

数据库版本

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 版本下正常执行。

网友评论
<