數據庫版本
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 版本下正常執行。