Su consulta me parece bien. Acabo de agregar Table Alias. Su consulta actualizará todos los registros en table1. Que error te da...??
Sugerencias,
a) A menos que la intención sea actualizar todos los registros, agregue una cláusula where en la consulta para evitar actualizar todos los registros...
b) Si obtiene (ORA-01427:la subconsulta de una sola fila devuelve más de una fila), significa que a la subconsulta relacionada (entre paréntesis) le falta alguna condición para que obtenga solo 1 fila por 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
);