Domanda

sto convertendo stored procedure di SQL Server a Oracle. In SQL Server è possibile inserire in una tabella da una chiamata di funzione.

Questa è la SQL Server:

INSERT INTO t_tmpl( rel_class_code, rel_side, template_id, template_name, template_desc )
SELECT rel_class_code, ls_rel_side, obj_id, name, description
FROM etmf_get_templates_for_rel( ps_rel_class_code, ls_rel_side, pi_called_by )

Il messaggio di errore che ottengo quando si converte questo per Oracle è "PL / SQL: ORA-00933: comando SQL non adeguatamente finita".

Qualcuno sa che questa affermazione dovrebbe essere simile in Oracle?

Grazie !!!

È stato utile?

Soluzione

Se la funzione restituisce un risultato pipeline set non vi resta che mettere la funzione all'interno tabella come segue:

INSERT INTO t_tmpl
   (rel_class_code, rel_side, template_id, template_name, template_desc)
   SELECT rel_class_code, ls_rel_side, obj_id, name, description
   FROM TABLE(
      etmf_get_templates_for_rel(ps_rel_class_code, ls_rel_side, pi_called_by)
      )
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top