0
我在问这个问题,因为我没有得到一个错误,我期望应该有一个错误。 请帮我理解在什么情况下这是可能的。我有一个查询:sql不会抛出无效的标识符
select foracid,acct_name, schm_code, schm_type from tbaadm.gam where
acid in(select acid from tbaadm.iar);
此查询返回的结果没有引发任何错误。我预计无效标识符 ,因为表tbaadm.iar没有字段酸。 当我运行:
select acid from tbaadm.iar;
我得到:
ORA-00904: "ACID": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 772 Column: 8
我使用的SQLDeveloper和Oracle 10g。对我来说有点奇怪。值得一提的,虽然是有在tbaadm.iar一个领域,都是一个ID,所以正确的查询应该是:
select foracid,acct_name, schm_code, schm_type from tbaadm.gam where
acid in(select entity_id from tbaadm.iar);
这到底是怎么回事?
子查询不应该有效吗?因为'SELECT tbaadm.gam.acid FROM tbaadm.iar'也不会执行? – ErrorNotFoundException
子查询是有效的,因为它位于从'tbaadbm.gam'中选择的查询中。 – Barmar
好的谢谢明白了。 – ErrorNotFoundException