2

我正在将 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 中应该是什么样子?

谢谢!!!

4

1 回答 1

3

如果您的函数返回流水线结果集,您只需将函数放入 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)
      )
于 2010-11-29T18:54:54.837 回答