Ваш второй запрос должен быть:
update a
set reference_1=b.ref1_value,
refrence_2=b.ref2_value
FROM w_isolationvalve a
JOIN w_valve_reftest b ON a.xfm_id=b.xfmid_value
Что касается количества обновлений, оно будет только 93, только если xfm_id и xfmid_value уникальны.
Также будьте осторожны с недетерминированностью c обновления. Если ваш выбор будет иметь несколько результатов для вашего условия объединения, обновление будет выполнено один раз для каждого из нескольких результатов, и вы не будете знать, что у вас получится.
Это должно работать в Oracle:
MERGE INTO w_isolationvalve a
USING
(
SELECT * FROM w_valve_reftest
)b
ON(a.xfm_id = b.xfmid_value)
WHEN MATCHED THEN UPDATE SET
a.reference_1 = b.ref1_value,
a.refrence_2 = b.ref2_value ;
Так как вы не любите слияния. Я думаю, что это также должно работать в Oracle:
UPDATE
(SELECT a.reference_1, a.refrence_2, b.ref1_value , b.ref2_value
FROM w_isolationvalve a
INNER JOIN w_valve_reftest b
ON a.xfm_id = b.xfmid_value
) t
SET t.reference_1 = t.ref1_value ,
t.refrence_2 =t.ref2_value