Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Was ist die Ursache für den ORA-38104-Fehler beim SQL-Merge?

Wie wäre es damit, der äußere Join bedeutet rid wird null sein und somit fehlschlagen und so in den WHEN NOT MATCHED fließen Teil der Erklärung, falls vorhanden

MERGE INTO target_table tgt
USING ( SELECT t2.ROWID AS rid
            ,  s2.c2
        FROM   target_table t2
             , source_table s2
        WHERE t2.c1 (+) = s2.c1
      ) src
ON (tgt.rowid = src.rid)
WHEN MATCHED THEN
UPDATE SET tgt.c1=src.c2