sql >> Database teknologi >  >> RDS >> Oracle

Hvordan definerer man en pl sql-funktion med dynamiske returtyper i Oracle?

Du kan implementere dette ved at bruge en svagt skrevet Ref Cursor som returtype. Dette er især nemt at implementere fra en klientgrænseflade ved hjælp af JDBC, da den returnerede markørtype kan trædes igennem ligesom et hvilket som helst forespørgselsresultat, og metadataene kan aflæses fra ResultSet.getMetaData(). Her er et eksempel:

CREATE OR REPLACE PROCEDURE retrieve_info(field_id in integer, p_cursor in out sys_refcursor)
AS
BEGIN
  open p_cursor for 'select * from emp';
END;

Forespørgslen i anførselstegn kan være alt, der returnerer en hvilken som helst type, for et hvilket som helst antal kolonner.



  1. Sekvensnummer i tabel

  2. Hvordan kan jeg sortere efter flere kolonner, men ikke efter værdi?

  3. Få ugedag i SQL Server 2005/2008

  4. looping med en forespørgsels- og opslagstabel. mysql og php