Ответ 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;
/
Пока я пытаюсь установить значение более 4000 символов в поле с типом данных CLOB
, это дает мне эту ошибку:
ORA-01704: строковый литерал слишком длинный.
Любое предложение, какой тип данных будет применим для меня, если мне нужно установить значение неограниченных символов, хотя для моего случая оно имеет около 15000
символов.
Примечание: длинная строка, которую я пытаюсь сохранить, кодируется в ANSI.
Что вы используете при работе с 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;
/
Попытайтесь разделить символы на несколько фрагментов, подобных запросу ниже, и попробуйте:
Insert into table (clob_column) values ( to_clob( 'chunk 1' ) || to_clob( 'chunk 2' ) );
Это сработало для меня.
Сплит работает до 4000 символов в зависимости от символов, которые вы вставляете. Если вы вставляете специальные символы, он может выйти из строя. Единственный безопасный способ - объявить переменную.