В соответствии с documentation столбцами типа данных CLOB и NCLOB может храниться до 8 терабайт символьных данных.Работа с очень большими текстовыми данными и столбцом CLOB
У меня есть текст, который содержит 100 000 символов, как я могу запустить запрос, как это:
UPDATE my_table SET clob_column = 'text, which contains 100 000 characters'
WHERE id = 1
?
Если в тексте, количество символов до 32767, то можно использовать PL/SQL анонимный блок:
DECLARE
myvar VARCHAR2(15000);
BEGIN
myvar := 'text, which contains 100 000 characters';
UPDATE my_table SET clob_column = myvar
WHERE id = 1;
....
END;
Что такое решение, где текст очень большой и содержит, например, 100 000 символов?
обновление
Я пытаюсь с dbms_lob.append
:
create table t1 (c clob);
declare
c1 clob;
c2 clob;
begin
c1 := 'abc';
c2 := 'text, which contains 100 000 characters';
dbms_lob.append(c1, c2);
insert into t1 values (c1);
end;
Хотя, также получил ошибку: string literal too long
.
Я делаю что-то неправильно?
Откуда берутся эти данные? Набрание 100 тыс. Символов было бы плохим выбором, поэтому прямой SQL или анонимный блок PL/SQL не является хорошей идеей. Если данные находятся в файлах, вы можете напрямую использовать 'UTL_FILE'. Если данные поступают из приложения, вы можете использовать любой язык, который он написал, для непосредственного взаимодействия с объектами clob. –
Спасибо за ответ, мне просто нужно хранить большой текст в столбце clob – RIKI