मुझे संदेह है कि आपको लगता है कि आपका कर्सर REFCURSOR से पंक्तियाँ ला रहा है। यह। REFCURSOR स्वयं एक कर्सर है, आप इसे चुनने के लिए किसी अन्य कर्सर का उपयोग नहीं करते हैं।
आपका वर्तमान कर्सर क्या कर रहा है, एक कॉलम के साथ एक पंक्ति प्राप्त कर रहा है, जिसमें फ़ंक्शन कॉल का परिणाम होता है। जो एक record_cursor
है record_name
नहीं है , तो आपको एक प्रकार का बेमेल मिलता है।
मुझे संदेह है कि आप वास्तव में जो करना चाहते हैं वह कुछ इस तरह है:
declare
symbol_cursor package_name.record_cursor;
symbol_record package_name.record_name;
begin
symbol_cursor := package_name.function_name('argument');
loop
fetch symbol_cursor into symbol_record;
exit when symbol_cursor%notfound;
-- Do something with each record here, e.g.:
dbms_output.put_line( symbol_record.field_a );
end loop;
CLOSE symbol_cursor;
end;