【发布时间】:2010-11-09 13:03:58
【问题描述】:
我在一个包中有一个函数,它可以将 REF CURSOR 返回到 RECORD。我正在尝试从代码块中调用此函数。调用代码如下:
declare
a_record package_name.record_name;
cursor c_symbols is select package_name.function_name('argument') from dual;
begin
open c_symbols;
loop
fetch c_symbols into a_record;
exit when c_symbols%notfound;
end loop;
close c_symbols;
end;
作为 package_name 一部分的函数声明如下所示:
TYPE record_name IS RECORD(
field_a varchar2(20);
);
TYPE record_cursor IS REF CURSOR RETURN record_name;
FUNCTION getsymbols(argument IN varchar2) return record_cursor;
当我尝试运行调用代码块时,出现异常:PLS-00386: type mismatch found at 'EXAMPLE_SYMBOLS' between FETCH cursor and INTO variables。
a_record 的类型应该是什么以及如何访问我正在获取的记录的各个元素(类型为 record_name)?
【问题讨论】:
标签: sql oracle plsql oracle10g