关于Oracle游标out参数多层调用的BUG,ORA-06504
Posted HH
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Oracle游标out参数多层调用的BUG,ORA-06504相关的知识,希望对你有一定的参考价值。
数据库版本
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的主要内容,如果未能解决你的问题,请参考以下文章