Oracle
 sql >> Base de données >  >> RDS >> Oracle

Passer la liste définie par l'utilisateur de la mise en veille prolongée à la procédure stockée oracle

  1. Créez un type OBJECT, dites MyType is OBJECT .... dans Oracle qui contient tous les champs dont vous avez besoin
  2. Créer un type de collection, TableOfMyObject IS TABLE OF MyObjectType
  3. Créer une procédure qui prend TableOfMyObject comme paramètre.

Vous pouvez utiliser une variable de collection dans les instructions SQL de votre procédure stockée comme SELECT * FROM TABLE(collection_variable)

J'ai fait la même chose, mais le plus gros défi était de l'appeler depuis l'application en utilisant hibernate - J'ai enfin trouvé le moyen de le faire.

Mettre à jour SQL pouvant être exécuté à partir de 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;