Din forespørgsel virker okay for mig. Jeg har lige tilføjet tabelalias. Din forespørgsel vil opdatere alle poster i tabel1. Hvilken fejl får du...??
Forslag,
a) Medmindre det er hensigten, at du vil opdatere alle poster, skal du tilføje en where-klausul i forespørgslen for at undgå at opdatere alle poster...
b) Hvis du får (ORA-01427:enkeltrækkes underforespørgsel returnerer mere end én række), betyder det, at en korreleret underforespørgsel (inden for parenteser) mangler en betingelse for at få den til kun at hente 1 række pr. 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
);