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

Oracle递归CTE报ORA-00905缺失关键字错误的问题咨询

问题原因及解决方案

Oracle数据库(包括Apex工作台)不支持RECURSIVE关键字,这是MySQL等其他数据库的语法要求。Oracle的递归CTE语法无需额外声明RECURSIVE,直接用WITH子句定义即可。

修正后的兼容Oracle的代码:

WITH cte (n) AS
(
  SELECT 1
  UNION ALL
  SELECT n + 1 FROM cte WHERE n < 5
)
SELECT * FROM cte;

补充说明:

  • Oracle会自动通过UNION ALL连接的锚点查询(SELECT 1)和递归查询(SELECT n + 1 FROM cte WHERE n < 5)识别递归逻辑,不需要显式添加RECURSIVE关键字。
  • 你复制的代码可能是跨数据库的通用示例,但Oracle有专属语法规范,移除RECURSIVE就能正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:45:35