sql-server - Oracle 从函数插入

标签 sql-server oracle function insert ora-00933

我正在将 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/

相关文章:

c - 函数指针数组的使用

javascript - 如何在将来创建的元素上传递jquery函数事件

sql-server - 如何在 SQL Server 中进行多重 JOIN

oracle - 去掉 PL/SQL 函数末尾的逗号 [Oracle PL/SQL]

sql - 如何在 SQL Server 中跨多列选择所有非数字值?

sql - ORA-30372 细粒度访问策略与物化 View 冲突

java - Oracle 查询到 JPA 查询转换

javascript - "Maximum call stack size exceeded"从函数内部调用函数

java - 使用 mssql-jdbc 自由连接到 Sql Server

sql - 了解聚集索引