Bạn có thể sử dụng một hàm đường ống để trả về kết quả được thiết lập một bản ghi tại một thời điểm, nhưng theo cách mà công cụ SQL có thể hiểu được.
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;
/
Sử dụng gói này, bạn có thể chọn con trỏ tham chiếu của mình:
SELECT if_type
,number_infected
FROM table(WrapperSample.getADedIcWarningsProv(1, 2))