Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle 11g Update语句出现错误ORA-00904_Sql_Oracle_Oracle11g_Sql Update_Oracle12c - Fatal编程技术网

Sql Oracle 11g Update语句出现错误ORA-00904

Sql Oracle 11g Update语句出现错误ORA-00904,sql,oracle,oracle11g,sql-update,oracle12c,Sql,Oracle,Oracle11g,Sql Update,Oracle12c,我必须在Oracle数据库中运行以下更新查询 UPDATE Appliance SET Appliance.IdApplianceType = ( SELECT AT.id FROM Appliance A INNER JOIN ApplianceType AT ON UPPER(A.typeName) = UPPER(AT.name) AND Appliance.id = A.id) 目标是查找Appliance.typeName和ApplianceType.name记录之间的匹

我必须在Oracle数据库中运行以下更新查询

UPDATE Appliance
 SET Appliance.IdApplianceType =
 (
 SELECT AT.id
 FROM Appliance A INNER JOIN ApplianceType AT
 ON UPPER(A.typeName) = UPPER(AT.name)
 AND Appliance.id = A.id)
目标是查找Appliance.typeName和ApplianceType.name记录之间的匹配,并在Appliance.IdApplianceType(FK ApplianceType)中设置ApplianceType.id(主键)(注意:在第二步中,规范化Appliance表删除Appliance.typeName列并使用类似IdApplianceType的关系。)

在Oracle12c(和SQLServer2008+)中,它可以工作,而在版本11g中则不能工作。

我在下面报告错误

QL Error: ORA-00904: "APPLIANCE"."ID": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
任何帮助都将不胜感激:)


谢谢

额外的
加入
似乎没有必要。为什么不使用这个更简单的版本呢

UPDATE Appliance
    SET Appliance.IdApplianceType =
        (SELECT AT.id
         FROM ApplianceType AT
         WHERE UPPER(Appliance.typeName) = UPPER(AT.name)
        );

额外的
join
似乎没有必要。为什么不使用这个更简单的版本呢

UPDATE Appliance
    SET Appliance.IdApplianceType =
        (SELECT AT.id
         FROM ApplianceType AT
         WHERE UPPER(Appliance.typeName) = UPPER(AT.name)
        );

我想没有期末考试我想没有期末考试