2

我对 oracle 比较陌生,并且已经编写了下面的合并语句,当我运行它时会产生“ora-00904 错误 vwe_cpr_info.rin_per_id 无效标识符”消息。

我已经检查并且视图和列名称是正确的,我确实有权访问视图,并且我没有尝试更新连接中使用的字段。

我已经看了这么长时间了,我想我已经停止看到它了,任何建议都会受到欢迎。它位于 Oracle 9i 环境中。

MERGE INTO vws_art_alert 
USING (
   SELECT rin_date_unreg, rin_per_id
   FROM vwe_cpr_info
   WHERE rin_date_unreg >= '27-SEP-11'
   AND rin_date_unreg <= '13-JAN-12')
ON (vws_art_alert.art_per_id = vwe_cpr_info.rin_per_id
    AND art_alert = 'AL02' 
    AND art_inactive_on IS NULL)
WHEN MATCHED THEN  
UPDATE SET vws_art_alert.art_inactive_on = vwe_cpr_info.rin_date_unreg;
4

1 回答 1

3

您需要“使用”子句的别名。尝试这个:

MERGE INTO vws_art_alert 
USING (
   SELECT rin_date_unreg, rin_per_id
   FROM vwe_cpr_info
   WHERE rin_date_unreg >= '27-SEP-11'
   AND rin_date_unreg <= '13-JAN-12') t
ON (vws_art_alert.art_per_id = vwe_cpr_info.rin_per_id
    AND art_alert = 'AL02' 
    AND art_inactive_on IS NULL)
WHEN MATCHED THEN  
UPDATE SET vws_art_alert.art_inactive_on = t.rin_date_unreg;
于 2012-09-13T15:37:43.670 回答