Я пытаюсь обновить значение clob длиной > 2 миллиона символов в PL/SQL. я получаю сообщение об ошибке
Строковый литерал слишком длинный
Можно ли как-нибудь обойти эту ошибку?
Это фрагмент кода PL/SQL, с помощью которого я пытаюсь обновить значение clob:
DECLARE
value clob;
clob_field clob;
fromindex integer;
offset integer;
chunks integer;
eclob clob;
sql_stmt clob;
BEGIN
fromindex := 1;
offset := 2;
clob_field := '<clob_value_with_length_2Million>';
chunks := 1+(dbms_lob.Getlength(clob_field) / 2);
value :='';
FOR chunk IN 1 .. chunks LOOP
IF ( chunk != 1) THEN
value := value || ' || ';
END IF;
value := value || 'to_clob('''||dbms_lob.Substr(clob_field, offset, fromindex)||''')';
fromindex := fromindex + 2;
END LOOP;
dbms_output.put_line(value);
sql_stmt := 'update mytable
set sources = ' || value ||' where scenario_id = 1 and entry_index = 1';
EXECUTE IMMEDIATE sql_stmt;
END;
Я получаю сообщение об ошибке при инициализации clob_field, и это очевидно, поскольку PL/SQl не позволяет использовать более 32 тыс. символов. Итак, я обращаюсь сюда, чтобы узнать, могу ли я найти какое-либо решение моей проблемы.