naja, funktioniert schon mit einem schritt, jedoch mit 2 select-ergebnissen
update tabelle_a a
set a.feld1 = (select b.feld1
from tabelle_b b
where b.feld3 = a.feld3
and b.feld1 != a.feld1),
a.feld2 = (select b.feld2
from tabelle_b b
where b.feld3 = a.feld3
and b.feld2 != a.feld2)
where exists in (select b.feld3
from tabelle_b b
where (b.feld1 != a.feld1 or
b.feld2 != a.feld2)
and b.feld3 = a.feld3);
ach, wie herrlich komplex ist doch oracle
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]