在我们的申请stack(unlist(country))
# values ind
#1 5 CAM
#2 1 TJK
#3 7 SEN
中,我面临着如下的奇怪问题。
当我在Oracle(11g and 12C)
数据库中运行以下查询时,它成功运行并为我提供输出。
Oracle
但是当我单独运行下面的内部查询时,它会抛出错误:
从table2中选择col2 ORA-00904:" COL2":无效标识符
当我描述表table2时,Col2不存在。错误是预期的。但是前面的查询执行成功,这是我关心的问题。有人可以解释一下这种行为吗?
答案 0 :(得分:2)
总是,我重复总是给出并使用表别名。你永远不会遇到麻烦,也不会遇到这样的情况: 现在在同一个DB中再次运行以下查询,我确定它会抛出一些错误:
select * from table1 a where a.col1 in (select b.col2 from table2 b) ;
现在请注意,我所做的就是给表别名。这里最可能发生的是table1有一个名为'col2'的列,而子查询引用了那个。这就是为什么它运行良好并且没有显示任何错误。