La tua query mi sembra a posto, ho appena aggiunto l'alias tabella. La tua query aggiornerà tutti i record nella tabella1. Che errore stai ricevendo...??
Suggerimenti,
a) A meno che non desideri aggiornare tutti i record, aggiungi una clausola where nella query per evitare di aggiornare tutti i record...
b) Se stai ricevendo (ORA-01427:la sottoquery a riga singola restituisce più di una riga), significa che la sottoquery correlata (tra parentesi) manca di alcune condizioni per farla recuperare solo 1 riga per 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
);