ORA-01797: 此运算符后必须跟 ANY 或 ALL 错误

新手上路,请多包涵

在我执行查询时,

 select *
from file_log f
where F.DCP_SRCE_FILENM_FK in ('ABC','DEF') and
      F.TRANS_DT>=to_date('08/25/2017','mm/dd/yyyy') and
      F.TRANS_DT<=('08/30/2017','mm/dd/yyyy')

收到以下错误:

ORA-01797: 此运算符后必须跟 ANY 或 ALL。

请大家帮我写下正确的查询,这样这个错误就会消失吗?

原文由 kumar shivam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 4.9k
1 个回答

对于那些最终搜索 ORA-01797 错误的人:

当逻辑运算符(=、!=、>、<、<=、>=)的右侧包含多个值时,会出现此错误。

可能的解决方案:

  1. 确保逻辑运算符的右侧包含单个值。
  2. 使用 IN 代替 ( = ) 和 NOT IN 代替 ( != ) 处理多个值
  3. 使用 ALLANYSOME 处理多个值,如 文档 所述。

原文由 Omer Gurarslan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进