Oracle INSERT из функции
-
29-09-2019 - |
Вопрос
Я преобразую 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)
)
Не связан с StackOverflow