あなたのクエリは私には問題ないようです。テーブルエイリアスを追加しました。クエリは、table1のすべてのレコードを更新します。どのようなエラーが発生しています...??
提案、
a)すべてのレコードを更新することが意図されていない限り、すべてのレコードが更新されないように、クエリにwhere句を追加してください...
b)取得している場合(ORA-01427:単一行のサブクエリが複数の行を返す)、相互に関連するサブクエリ(角かっこ内)に、epcclass_idごとに1行のみをフェッチするための条件がないことを意味します。
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
);