Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Übergeben einer benutzerdefinierten Liste aus dem Ruhezustand an die gespeicherte Orakelprozedur

  1. Erzeuge OBJEKT-Typ, sage MyType is OBJECT .... in Oracle, das alle benötigten Felder enthält
  2. Sammlungstyp erstellen, TableOfMyObject IS TABLE OF MyObjectType
  3. Erstellen Sie eine Prozedur, die TableOfMyObject verwendet als Parameter.

Sie können Sammlungsvariablen in SQL-Anweisungen in Ihrer gespeicherten Prozedur wie SELECT * FROM TABLE(collection_variable) verwenden

Ich habe dasselbe getan, aber die größte Herausforderung bestand darin, es über die App mit dem Ruhezustand aufzurufen - Endlich habe ich den Weg dazu gefunden.

Aktualisieren SQL, das von Toad ausgeführt werden kann.

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;