Pregunta

Estoy convirtiendo procedimientos almacenados de SQL Server a Oracle. En SQL Server se puede insertar en una tabla de una llamada a la función.

Aquí está el 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 )

El mensaje de error que consigo al convertir esto a Oracle es "PL / SQL: ORA-00933: comandos SQL no terminó correctamente".

¿Alguien sabe lo que esta declaración debe ser similar en Oracle?

Gracias !!!

¿Fue útil?

Solución

Si su función devuelve un resultado segmentado establecido que sólo tiene que poner la función dentro de tabla de la siguiente manera:

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)
      )
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top