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

Come definire una funzione pl sql con tipi di ritorno dinamici in Oracle?

È possibile implementarlo utilizzando un cursore Ref con tipizzazione debole come tipo restituito. Ciò è particolarmente facile da implementare da un'interfaccia client che utilizza JDBC, poiché il tipo di cursore restituito può essere visualizzato come qualsiasi risultato di query e i metadati possono essere interrogati da ResultSet.getMetaData(). Ecco un esempio:

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;

La query tra virgolette potrebbe essere qualsiasi cosa che restituisca qualsiasi tipo, per qualsiasi numero di colonne.