You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL Developer添加行尾空注释后报ORA-00928错误求助

问题结论:这是Oracle SQL Developer的解析问题,与Oracle数据库无关

原因分析

这个问题的核心是SQL Developer 23.1.0.097对行尾空--注释的语句解析逻辑存在bug,而非Oracle 19c数据库本身的语法处理错误:

  • 当你在带UNION ALL的SELECT语句第一行末尾添加空的--注释时,SQL Developer在将语句发送给数据库前,错误地拆分了完整的SQL语句——它可能把SELECT col1 FROM table1 --当成了一个独立的执行单元,而后续的UNION ALL SELECT ...被当作了另一个缺少开头SELECT的语句,导致数据库返回ORA-00928错误。
  • 而使用/* */块注释时,SQL Developer能正确识别这是语句的一部分,不会拆分完整的UNION ALL语句,因此数据库能正常执行。

验证方式

你可以直接用SQL*Plus或其他数据库客户端执行带行尾空--注释的语句,会发现数据库能正常解析并运行,这就证明问题出在SQL Developer的语句处理逻辑上,和Oracle数据库无关。

临时解决方法

  1. 用/* */块注释替代行尾的空--注释;
  2. 避免在UNION ALL前一行的末尾添加空的--注释。

内容的提问来源于stack exchange,提问作者LegacyGrinder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:39:52