在迁移 postgresql 9 函数的过程中遇到了以下问题:在 Oracle 中,您只能在复杂的选择语句中使用 WITH。同时,在 postgres(以及 MS SQL 2008)中,您可以同时使用 WITH 和 INSERT(更新、删除)。
例子:
WITH prerows AS ( SELECT ObjectID, LoginID, Param FROM devices D
WHERE D.DevNum = '0003' AND ObjectID IS NULL )
INSERT INTO dev_sub( ObjectID, LoginID, Param )
SELECT ObjectID, LoginID, Param FROM prerows;
该查询在 PostgreSQL 9.2 中运行良好,但在 oracle 11 XE 中写入错误:“ORA-00928:缺少 SELECT 关键字”。也许我只是想念一些东西?我是一个 Oracle 爱好者,如果知道它不能将 WITH 语句和 INSERT 命令结合起来,我会很遗憾。
最好的问候,安东尼