【发布时间】:2015-03-18 19:16:49
【问题描述】:
此 SQL 在 MS SQL Server 上运行良好,但会产生错误“ORA-00907:缺少右括号”。
SQL:
UPDATE DELIVERY
SET VISIBLE = 0
WHERE DELIVERY.ID
IN
(
SELECT DELIVERY.ID FROM delivery WHERE DELIVERY.VISIBLE = 1
EXCEPT
SELECT DELIVERY.ID FROM delivery LEFT JOIN inventory ON INVENTORY.DELIVERYID = DELIVERY.ID
WHERE ((DELIVERY.VISIBLE = 1) AND (INVENTORY.VISIBLE = 1)) AND (INVENTORY.INVENTORYSTATE = 3)
);
有没有办法让它在 Oracle 上工作,或者使用 IN 和 SELECT 语句的更新在概念上是错误的?
【问题讨论】:
-
使用 Oracle 中存在的地方
-
@Piyush 谢谢,我现在看看...
-
IN也可以在Oracle中工作
-
OK 看看,在 Oracle 中将 EXCEPT 更改为 MINUS
-
@Piyush 谢谢,我设置 SQL 以同时使用 MS SQL 和 ORACLE 的方式,MINUS 选项似乎是最简单的解决方案。
标签: sql oracle oracle11g sql-update