2012-09-13 38 views
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; 

回答

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; 
+0

已經排序了,謝謝! – leathamadan