我正在将 SQL Server 存储过程转换为 Oracle。在 SQL Server 中,您可以通过函数调用插入表。
这是 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 )
将其转换为 Oracle 时收到的错误消息是“PL/SQL: ORA-00933: SQL 命令未正确结束”。
有人知道这个语句在 Oracle 中应该是什么样子吗?
谢谢!!!
最佳答案
如果您的函数返回管道结果集,您只需将该函数放入 TABLE 中,如下所示:
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)
)
关于sql-server - Oracle 从函数插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306933/