Вашата заявка ми изглежда добре, току-що добавих псевдоним на таблица. Вашата заявка ще актуализира всички записи в таблица1. Каква грешка получаваш...??
Предложения,
a) Освен ако не искате да актуализирате всички записи, добавете клауза where в заявката, за да избегнете актуализирането на всички записи...
b) Ако получавате (ORA-01427:едноредова подзаявка връща повече от един ред), това означава, че корелираната подзаявка (в скоби) липсва някакво условие, за да извлече само 1 ред на 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
);