【发布时间】:2022-01-03 13:34:56
【问题描述】:
我编写了如下查询(oracle sql),我在 any() 函数(any() function problem)上看到红色突出显示。是 Oracle Developer 错误还是我的错误?如果是我的错,我该怎么改?
SELECT *
FROM EMP
WHERE (DEPTNO, SAL) = ANY(SELECT DEPTNO, MAX(SAL) FROM EMP GROUP BY DEPTNO);
oracle 开发者版本:21.4.1.
详细错误信息:
语法错误(scalar_subquery_expression := ( ...
【问题讨论】:
-
如果您将鼠标悬停在
ANY关键字上,会出现什么消息?您使用的是什么版本的 SQL Developer?尝试执行时查询是否出错? -
忽略它。 SQL Developer 错误地将其识别为语法错误,但还是成功执行了该语句。
-
@EJEgyed 哎呀,我添加了 oracle 开发者版本和错误消息
-
免责声明:我对 SQL Developer 的内部工作了解不多。免责声明结束。问题是,既然查询在数据库服务器上运行没有错误,为什么 SQL Developer 说有错误?这怎么可能?解答: SQL Developer 将自己插入到您的查询(只是一个字符串)和 Oracle 解析器(在服务器上运行)之间,该解析器应该检查语法等。 SQL Developer 在将其发送到服务器之前自行检查您的语法 - 并且它的检查器有一个错误。
-
也许至少部分地预见到此类错误的可能性,SQL Developer 的开发人员允许您将查询提交到数据库服务器,即使它 (SQL Developer) 认为您有语法错误。它允许数据库解析器检查您的查询并确认 SQL 开发人员的意见或不同意它并运行您的查询。
标签: sql oracle oracle-sqldeveloper any