迁移 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 命令,我会很遗憾。
最好的问候,安东尼
最佳答案
尝试:
INSERT INTO dev_sub( ObjectID, LoginID, Param )
WITH prerows AS ( SELECT ObjectID, LoginID, Param
FROM devices D
WHERE D.DevNum = '0003'
AND ObjectID IS NULL )
SELECT ObjectID, LoginID, Param FROM prerows;
关于postgresql - oracle plsql WITH语句结合INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16584864/