sql >> Base de Datos >  >> RDS >> Oracle

ORA-30926:Estado de fusión

Además de la explicación de @zaratustra, su combinación también está intentando establecer el fn y ln al mismo name value por lo que no daría el resultado que desea, incluso si funcionó. Y no puedes usar fn o ln en el using cláusula mientras intenta actualizarlos.

Si su name_test la tabla tenía una columna de clave principal (o al menos única), entonces podría incluirla en la combinación, pero aún así solo podría actualizar correctamente el fn o ln valor en una sola pasada.

No estoy seguro de por qué no estás haciendo una actualización simple:

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