Давайте возьмем некоторые образованные догадки.Если вы выполните SELECT DISTINCT TABLE_COLUMN2 FROM TABLE самостоятельно, я подозреваю, что вы обнаружите, что вы получаете только одно значение, и что строки в TABLE_NAME, имеющие TABLE_COLUMN2, равную значению, возвращенному из запроса DISTINCT, были обновлены.Возможно, это тот случай, когда ваши ожидания отличаются от данных в вашей базе данных.Я считаю, что это должно быть так, потому что, если запрос DISTINCT вернул более одного значения, Oracle выдаст ошибку (как упомянуто в комментарии @ a1ex07 выше).Возможно, вы захотите переписать свой запрос, чтобы использовать условие IN, например
update table_name
set table_column1='text'
where table_column2 IN (select distinct table_column2 from table)
Индекс TABLE_COLUMN2 не должен влиять на поведение оператора UPDATE.
Делитесь и наслаждайтесь.