2

私はオラクルに比較的慣れていないので、実行すると「ora-00904エラーvwe_cpr_info.rin_per_id無効な識別子」メッセージを生成するマージステートメントを以下に記述しました。

チェックしましたが、ビューと列の名前が正しいです。ビューにアクセスする権限があり、結合で使用されているフィールドを更新しようとはしていません。

私はこれを長い間見てきましたが、私はそれを見るのをやめたと思います。どんなアドバイスでも大歓迎です。Oracle9i環境にあります。

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

「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;
于 2012-09-13T15:37:43.670 に答える