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

Passaggio dell'elenco definito dall'utente dall'ibernazione alla procedura memorizzata Oracle

  1. Crea tipo OBJECT , dì MyType is OBJECT .... in Oracle che ha tutti i campi di cui hai bisogno
  2. Crea tipo di raccolta, TableOfMyObject IS TABLE OF MyObjectType
  3. Crea una procedura che accetta TableOfMyObject come parametro.

È possibile utilizzare la variabile di raccolta nelle istruzioni SQL nella procedura memorizzata come SELECT * FROM TABLE(collection_variable)

Ho fatto lo stesso, ma la sfida più grande è stata chiamarlo dall'app usando l'ibernazione - Ho finalmente trovato il modo per farlo.

Aggiorna SQL che può essere eseguito da Toad.

set serveroutput on; -- for debugging, 
-- it makes sense if your procedure outputs anything
declare my_list TableOfMyObject  := TableOfMyObject ();
begin 
  my_list.extend;
  my_list(1) := MyType([MyType constructor parameters]);

  my_list.extend;
  my_list(2) := MyType([MyType constructor parameters]);
  your_procedure(my_list);
end;