我有这个用于删除行的简单Oracle语句...但是我无法使它正常工作
delete from NPEA.tnpe00_all
where EXISTS
(select 1
from NPEA.tnpe05_doc, NPEA.tnpe00_all
where NPEA.tnpe05_doc.n_doc = NPEA.tnpe00_all.t_doc
and NPEA.tnpe05_doc.n_prt is null
and NPEA.tnpe05_doc.n_can = 4
order by n_doc)
错误代码是
00907. 00000 - "missing right parenthesis"
这怎么了
最佳答案
您不能在EXISTS子句中使用ORDER BY:
SQL> SELECT 1 FROM dual WHERE EXISTS (SELECT 1 FROM dual ORDER BY 1);
ERROR at line 1:
ORA-00907: missing right parenthesis
SQL> SELECT 1 FROM dual WHERE EXISTS (SELECT 1 FROM dual);
1
----------
1
集合中的order by子句没有任何意义,因此会产生错误(承认有无用的消息)。
关于sql - 为什么此Oracle查询不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8984334/