Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Passando a lista definida pelo usuário do procedimento armazenado de hibernação para oracle

  1. Crie o tipo OBJECT , digamos MyType is OBJECT .... no Oracle que tem todos os campos que você precisa
  2. Criar tipo de coleção , TableOfMyObject IS TABLE OF MyObjectType
  3. Criar procedimento que leva TableOfMyObject como parâmetro.

Você pode usar a variável de coleção em instruções SQL em seu procedimento armazenado como SELECT * FROM TABLE(collection_variable)

Eu fiz o mesmo, mas o maior desafio foi chamá-lo do aplicativo usando o hibernate - Finalmente encontrei a maneira de fazer isso.

Atualizar SQL que pode ser executado a partir do 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;