这个合并声明有什么问题?

时间:2012-09-13 15:34:03

标签: sql oracle merge oracle9i ora-00904

我对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;

1 个答案:

答案 0 :(得分:3)

您需要“using”子句的别名。试试这个:

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;
相关问题