Ihre Abfrage scheint mir in Ordnung zu sein. Ich habe gerade Tabellenalias hinzugefügt. Ihre Abfrage aktualisiert alle Datensätze in Tabelle1. Welchen Fehler bekommst du...??
Vorschläge,
a) Sofern Sie nicht alle Datensätze aktualisieren möchten, fügen Sie eine where-Klausel in die Abfrage ein, um zu vermeiden, dass alle Datensätze aktualisiert werden...
b) Wenn Sie erhalten (ORA-01427:Einzelzeilen-Unterabfrage gibt mehr als eine Zeile zurück), bedeutet dies, dass der verknüpften Unterabfrage (in Klammern) eine Bedingung fehlt, damit sie nur 1 Zeile pro epcclass_id abruft.
update table1 Pr
set Pr.code = (select t2.class_attr_value
from table2 t2
where t2.class_attr_name = 'sample'
and t2.epclass_id = Pr.epcclass_id
);