Вопрос

Я преобразую SQL Server сохраненные процедуры в Oracle. В SQL Server вы можете вставить в таблицу из вызова функции.

Вот сервер SQL:

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 )

Сообщение об ошибке, которое я получаю при преобразовании этого в Oracle, это «PL / SQL: ORA-00933: SQL команда не будет должным образом завершилась».

Кто-нибудь знает, как это утверждение должно выглядеть в Oracle?

Спасибо!!!

Это было полезно?

Решение

Если ваша функция возвращает конвейерный набор результатов, вам просто нужно поставить функцию внутренней таблицы следующим образом:

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)
      )
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top