Я думаю, что вы хотите проверить значение, которое вы обновляете; Я полагаю, что это НЕ первое значение NG_OFRRELPRD и обновляет каждую строку, кроме последней. Это НЕ игнорирует ваше предложение where, но оно у вас не в том месте. Если вы отформатируете свой запрос, вы увидите, что это предложение только для подвыбора, а не для обновления. Следовательно, без предложения where каждая строка обновляется со значением, выбранным для каждой строки, выбранной в коллекции.
UPDATE CDM.MDM_EVN_OFFER_ARCH
SET NG_OFRRELPRD1 = (SELECT NG_OFRRELPRD1
FROM CMBATCH.HashedCNumbers
WHERE CMBATCH.HashedCNumbers.UNIQUE_ID=array_unique_id_KEY(indx).UNIQUE_ID);
Возможно, вы имели в виду что-то вроде:
update cdm.mdm_evn_offer_arch offer
set ng_ofrrelprd1 = (select ng_ofrrelprd1
from cmbatch.hashedcnumbers hnum
where huum.unique_id=array_unique_id_key(indx).unique_id)
where offer.unique_id = array_unique_id_key(indx).unique_id;