Является ли ваш код частью какой-либо процедуры PLSql или это просто оператор SQL?Вы передаете переменную «value2» как переменную связывания или это строка в кавычках внутри запроса?Вы используете 12c или более раннюю версию Oracle DB?
Обычно наиболее распространенная «неочевидная» проблема связана с тем, что тип varchar2 ограничен 4000 символами в операторах SQL.Если вы находитесь в процедуре PLSql, ограничение составляет 32 000 символов.
Можете ли вы предоставить пример кода?Дело в том, что следующие два оператора приводят к разному поведению:
update table_name
set clob_field=value2
where column=condition1
and clob_field=value1
update table_name
set clob_field='Some very long string.....end of very long string'
where column=condition1
and clob_field='Some even longer string.....end of even longer string'
Посмотрите на сообщение Ошибка: ORA-01704: слишком длинный строковый литерал - пример того, как поставитьобновление в блоке plsql для достижения ограничения в 32,767 символов.
edit: взгляните на post Работа с очень большими текстовыми данными и столбцом CLOB , тоже