Sql ORA-00904:标识符无效,但表名和列名是否正确?
我有下面的SQL查询,但它给出了错误消息ORA-00904:KUST_ADR.KU_NR:invalid identifier,即使这些是正确的表名和列名。还有什么原因呢Sql ORA-00904:标识符无效,但表名和列名是否正确?,sql,oracle,ora-00904,Sql,Oracle,Ora 00904,我有下面的SQL查询,但它给出了错误消息ORA-00904:KUST_ADR.KU_NR:invalid identifier,即使这些是正确的表名和列名。还有什么原因呢 update auf_adr set email = (select k.ku_email from auf_kopf k join kust_adr ka on k.kunr = ka.ku_nr
update auf_adr
set email = (select k.ku_email
from auf_kopf k join
kust_adr ka
on k.kunr = ka.ku_nr
where auf_adr.auf_nr = k.auf_nr and
ka.ku_adr_art = 1 and
auf_adr.email <> ka.ku_email and
(select sum(s.rg_anz)
from auf_stat s
where s.auf_nr = k.auf_nr
) = 0
)
where auf_adr.adr_art = 2 and
exists (select 1
from auf_kopf k join
kust_adr ka
on k.kunr = ka.ku_nr
where auf_adr.auf_nr = k.auf_nr and
ka.ku_adr_art = 1 and
auf_adr.email <> ka.ku_email and
(select sum(s.rg_anz)
from auf_stat s
where s.auf_nr = k.auf_nr
) = 0
);
每个where子句行后面都有一个和缺失,这可能就是问题所在
where auf_adr.auf_nr = k.auf_nr AND
请在update语句中发布表结构,没有KUST_ADR.KU_NR组合,只有ka.KU_NR,您确定这会导致错误吗?它有别名…我看到它有别名,但消息是不相关的,即,好像没有别名。如果您创建的表在列名周围有双引号,然后列名区分大小写。检查您的表-它们是用小写字母创建的,并且在表名和列名周围有双引号吗?如果是这样,如果您没有在“选择小写”中的名称周围加双引号,oracle将给出一个错误。一旦开始在表/列名周围使用双引号,oracle会确保任何sql也有双引号和小写。如果创建不带双引号的表,则不介意小写或大写