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

ORA-30926 - Status zusammenführen

Zusätzlich zu der Erklärung von @zaratustra versucht Ihr Merge auch, den fn zu setzen und ln auf denselben name Wert, so dass es nicht das gewünschte Ergebnis liefern würde, selbst wenn es funktioniert hat. Und Sie können fn nicht verwenden oder ln im using -Klausel, während Sie versuchen, sie zu aktualisieren.

Wenn Ihr name_test Tabelle eine Primärschlüsselspalte (oder zumindest eine eindeutige) hatte, dann könnten Sie diese in die Zusammenführung einbeziehen, aber Sie könnten immer noch nur entweder den fn korrekt aktualisieren oder ln Wert in einem Durchgang.

Ich bin mir nicht sicher, warum Sie kein einfaches Update durchführen:

update name_test nt
set fn = (select td.name from temp_distinct td where td.fn = nt.fn),
  ln = (select td.name from temp_distinct td where td.fn = nt.ln);

8 rows updated.

select * from name_test;

FN    LN  
----- -----
Mich  Steve 
Mich  Phil  
Mark  Dave  
Mich  Phil  
Mich  Dave  
Phil  John  
Steve Dean  
Steve Phil