对 Oracle 数据库中不同模式中的表执行更新查询时显示无效标识符 SQL 错误

Invalid identifier SQL error displaying upon executing a update query for a tables in different schema in Oracle database

这里我使用的是 Oracle SQL 开发人员,我需要在另一个模式中更新 table。这是我写的更新查询。

update dcs.lte_pin_register set pin = '' 
where dcs.lte_pin_register.subscriber_seqno = dcs.subscriber.subscriber_seqno 
and dcs.subscriber.sub_number = '?'; 

在上面的查询中,

然而,当我要使用有效的 sub_number 执行上述查询时,我收到一条错误消息。

Error report -
SQL Error: ORA-00904: "DCS"."SUBSCRIBER"."SUB_NUMBER": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

我可以使用 (tableName.columnName) 为更新查询调用同一架构中的列名。但是我如何修改上面的查询以引用不同模式中 tables 中的列?

你必须使用相关子查询来实现这个 -

UPDATE dcs.lte_pin_register
   SET pin = ''
 WHERE EXISTS (SELECT 1 
                 FROM dcs.subscriber
                WHERE dcs.lte_pin_register.subscriber_seqno = dcs.subscriber.subscriber_seqno
                  AND dcs.subscriber.sub_number = '?');