Oracle 从函数插入

发布于 2024-10-05 19:00:10 字数 460 浏览 0 评论 0原文

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

谢谢!!!

I am converting SQL Server stored procedures to Oracle. In SQL Server you can insert into a table from a function call.

Here is the 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 )

The error message I get when converting this to Oracle is "PL/SQL: ORA-00933: SQL command not properly ended".

Does anyone know what this statement should look like in Oracle?

Thanks!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

动听の歌 2024-10-12 19:00:10

如果您的函数返回管道结果集,您只需将该函数放入 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)
      )

If your function returns a pipelined result set you just need to put the function inside TABLE as follows:

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)
      )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文