आप एक समय में एक परिणाम सेट एक रिकॉर्ड वापस करने के लिए एक पाइपलाइन फ़ंक्शन का उपयोग कर सकते हैं, लेकिन इस तरह से कि SQL इंजन समझ सकता है।
create or replace package WrapperSample is
type TResultRow is record(
if_type codes.cd%type
,number_infected Integer);
type TResultRowList is table of TResultRow;
function GetADedIcWarningsProv
(
p_hos_id in work_entity_data.hos_id%type
,p_date in date
) return TResultRowList
pipelined;
end WrapperSample;
/
create or replace package body WrapperSample is
function GetADedIcWarningsProv
(
p_hos_id in work_entity_data.hos_id%type
,p_date in date
) return TResultRowList
pipelined is
v_refcur eOdatatypes_package.eOrefcur;
currentRow TResultRow;
begin
v_refcur := YourSchema.getADedIcWarningsProv(p_hos_id, p_date);
loop
fetch v_refcur
INTO currentRow;
exit when v_refcur%NotFound;
pipe row(currentRow);
end loop;
close v_refcur;
return;
end;
end WrapperSample;
/
इस पैकेज का उपयोग करके, आप अपने रेफरी कर्सर का चयन कर सकते हैं:
SELECT if_type
,number_infected
FROM table(WrapperSample.getADedIcWarningsProv(1, 2))