sql >> Databasteknik >  >> RDS >> Oracle

Hur man gör ett omslag för att returnera något annat än ref markör

Du kan använda en pipeline-funktion för att returnera en resultatuppsättning en post i taget, men på ett sätt som SQL-motorn kan förstå.

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;
/

Med detta paket kan du välja din referensmarkör:

SELECT if_type
      ,number_infected
FROM table(WrapperSample.getADedIcWarningsProv(1, 2))



  1. Återkalla privilegier i Oracle

  2. Unicode (hexadecimala) tecken i MySQL

  3. tidszonsproblem med databasen

  4. Använda en fallbeskrivning i en kontrollbegränsning