Oracle SQL 19c外连接查询报ORA-00904无效标识符问题咨询
Oracle SQL 19c中ORA-00904错误的解决方法
你的问题出在未明确外连接的类型——Oracle SQL不支持单独使用OUTER JOIN关键字,必须指定是LEFT OUTER JOIN、RIGHT OUTER JOIN还是FULL OUTER JOIN。当你只写OUTER JOIN时,Oracle的SQL解析器无法正确识别表的关联逻辑,进而错误地判定R.b是无效标识符。
根据你的需求选择对应的外连接类型,修正后的查询示例如下:
左外连接(保留R表所有行)
SELECT R.a, R.b, S.b, S.c, S.d FROM R LEFT OUTER JOIN S ON (R.a > S.b AND R.b = S.c);
右外连接(保留S表所有行)
SELECT R.a, R.b, S.b, S.c, S.d FROM R RIGHT OUTER JOIN S ON (R.a > S.b AND R.b = S.c);
全外连接(保留两边所有行)
SELECT R.a, R.b, S.b, S.c, S.d FROM R FULL OUTER JOIN S ON (R.a > S.b AND R.b = S.c);
Oracle SQL对ANSI连接语法的实现要求更严格,必须明确外连接的方向才能让解析器正确解析表的关联关系。缺少限定词会导致解析逻辑混乱,最终抛出看似与表结构不符的无效标识符错误。
内容的提问来源于stack exchange,提问作者soporific312
相关产品推荐
相关产品推荐

