Váš dotaz se mi zdá v pořádku. Právě jsem přidal alias tabulky. Váš dotaz aktualizuje všechny záznamy v tabulce1. Jakou chybu máš...??
Návrhy,
a) Pokud to není záměrem, že chcete aktualizovat všechny záznamy, přidejte do dotazu klauzuli where, abyste se vyhnuli aktualizaci všech záznamů...
b) Pokud dostáváte (ORA-01427:jednořádkový poddotaz vrací více než jeden řádek), znamená to, že související poddotaz (v závorkách) postrádá nějakou podmínku, aby mohl načíst pouze 1 řádek na epcclass_id.
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
);