【问题标题】:Oracle SQL Developer ANY() FunctionOracle SQL Developer ANY() 函数
【发布时间】: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


【解决方案1】:

这是 SQL Developer 客户端解析器说它无法识别该模式/关键字。

如果你把鼠标放在它上面,你就会明白它为什么会这么想。

我可以运行它,它是有效的 SQL,它是一个错误。我会为你记录这个。感谢您的报告/测试用例!

免责声明:我是 SQL Developer 的产品经理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 2014-12-02
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多