Подтвердить что ты не робот

Ошибка: ORA-01704: строковый литерал слишком длинный

Пока я пытаюсь установить значение более 4000 символов в поле с типом данных CLOB, это дает мне эту ошибку:

ORA-01704: строковый литерал слишком длинный.

Любое предложение, какой тип данных будет применим для меня, если мне нужно установить значение неограниченных символов, хотя для моего случая оно имеет около 15000 символов.

Примечание: длинная строка, которую я пытаюсь сохранить, кодируется в ANSI.

4b9b3361

Ответ 1

Что вы используете при работе с CLOB?

Во всех случаях вы можете сделать это с помощью PL/SQL

DECLARE
  str varchar2(32767);
BEGIN
  str := 'Very-very-...-very-very-very-very-very-very long string value';
  update t1 set col1 = str;
END;
/

Ссылка на SQLFiddle

Ответ 2

Попытайтесь разделить символы на несколько фрагментов, подобных запросу ниже, и попробуйте:

Insert into table (clob_column) values ( to_clob( 'chunk 1' ) || to_clob( 'chunk 2' ) );

Это сработало для меня.

Ответ 3

Сплит работает до 4000 символов в зависимости от символов, которые вы вставляете. Если вы вставляете специальные символы, он может выйти из строя. Единственный безопасный способ - объявить переменную.