Oracle:即使使用完全限定名称后也是 "ORA-00918 column ambiguously defined"

标签 oracle join view oracle10g ambiguous

我正在尝试加入这样的两个 View :

Select CH.ID 
From V_CHARGE CH 
full outer join V_TEMPCH VT 
on CH.ID = VT.ID_CHARGE

尽管我在列名之前使用了别名,但我收到了“ORA-00918:列定义不明确”错误。 我已经被困在这个问题上一个小时了。请帮忙

更新

嗯,连接中使用的 View 本身有多个连接。连接一个接一个地进行,如下所示:

Select *
From tblA A
cross join tblB B
left outer join tblC C
on C.id = b.ID

解决问题的方法是使用括号分隔连接,如下所示:

Select *
From (Select *
      From tblA A
      cross join tblB B
     ) D
left outer join tblC C
on C.id = D.id

仍然不明白为什么使用第一种语法会出现问题,因为正在连接的表中没有冲突的列。 无论如何,感谢您的帮助:)

最佳答案

对于这个错误,您也有解决方法:

alter session set "_column_elimination_off"=true;

(如图 https://community.oracle.com/thread/2431395?tstart=0 )

关于Oracle:即使使用完全限定名称后也是 "ORA-00918 column ambiguously defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35153329/

相关文章:

mysql - SQL 左连接条件

python - 像在 MATLAB 中一样在 python 中查看工作区变量

Grails - Controller 和 View 之间的通信

java - 从 java 1.4、EJB 1 迁移到 Java 6 和 EJB 3

oracle - 是否可以为 session 设置默认的 ORACLE dblink 并避免 @dblink_name 后缀

php - 使用 mysql 选择前 10 个最近的事情

mysql - 改进 SQL 查询以删除出现次数超过 N 次的行

android - 如何获取附加到动画的 View ?

java - 我想在单击按钮时在 oracle 表中添加一列

Oracle apex - 从第 0 页禁用模式页面上的通知