Sql ORA-00904:标识符无效,但表名和列名是否正确?

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

我有下面的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
               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也有双引号和小写。如果创建不带双引号的表,则不介意小写或大写