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

修改SELECT语句别名后无法实现CURSOR,报ORA-00904错误

问题原因与解决方案

错误原因

ORA-00904错误的核心是:主查询中定义的字段别名user_no仅在当前SELECT结果集的展示阶段生效,子查询(包括CURSOR内的查询)无法引用主查询的字段别名。你的子查询里写了Q.user_no,但主表another_table.maria_punter的实际字段是userid,数据库找不到这个别名对应的字段,所以报错。

修正后的SQL语句

SELECT userid as user_no, CURSOR(SELECT user_no
   FROM my_table.punter P
   WHERE P.user_no = Q.userid)
   FROM another_table.maria_punter Q;

关键说明

  • 子查询关联主表时,必须使用主表的实际字段名(这里是Q.userid),而非主查询里定义的别名。
  • 主查询的别名user_no只影响最终结果的列名,不改变字段在数据库中的实际标识,所以子查询无法识别这个别名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:05:23