我有一個函數返回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;
函數聲明爲程序包的一部分,看起來是這樣的:
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:在FETCH遊標和INTO變量之間的'EXAMPLE_SYMBOLS'處發現類型不匹配。
a_record的類型應該是什麼,以及如何訪問我正在提取的記錄(類型爲record_name)的單個元素?
如果我的函數返回一個指針到多個記錄?有什麼方法可以遍歷這些記錄。 – neesh 2009-07-13 15:01:46