私の元の更新ステートメントは、Sybase で引き続きうまく機能します (下記参照) が、Oracle 11g に移行中であり、この更新ステートメントを Oracle Update に変換する必要があります。非常に多くのバージョンを試しましたが、エラーが発生し続けました.Oracle Updateステートメントがどのように機能するかを理解していないと思います. 誰でも助けることができますか?
私の元の良い更新ステートメント (Sybase):
UPDATE Valid
SET A.status = 'X',
A.reason = 'Missing'
FROM Valid A, Valid B
WHERE A.id_number = B.id_number
AND A.session_id = 69
AND A.userid = 'BS'
AND A.status = 'A'
AND isnull(B.street1, ' ') = ' '
以下は、何をしても機能しない私の Oracle バージョンです。
MERGE
INTO um_valid Target
USING (select * from um_valid) SOURCE
ON (t1.id_number = t2.id_number)
WHEN MATCHED THEN
UPDATE
SET status = 'X',
reason = 'Missing (street 1)'
WHERE Target.session_id = 69
AND Target.userid = 'BS'
AND Target.status = 'A'
AND NVL(SOURCE.street1, ' ') = ' ')
私が得ているエラー:
ORA-00933: SQL command not properly ended