Как вставить 2 миллиона символов? - PullRequest
0 голосов
/ 27 октября 2018

Мне нужно вставить 2 миллиона символов в базу данных Oracle, но когда я пытаюсь вставить с CLOB, у меня появляется ошибка, потому что она очень длинная.Как я могу вставить 2 миллиона символов в поле?

CREATE TABLE TABLA_CLOB(id number, valor CLOb default EMPTY_CLOB());
insert into TABLA_CLOB(id, valor) values (1,'DOCUMENT: ');

DECLARE
  v_clob CLOB;
BEGIN
  SELECT valor into v_clob from TABLA_CLOB where id=1 for update;
  dbms_lob.writeappend(v_clob,200,'text with 2 million characters');
  DBMS_OUTPUT.PUT_LINE(v_clob);
  COMMIT;
END;

1 Ответ

0 голосов
/ 27 октября 2018

В PL / SQL и SQL 'a value' является текстовым литералом, а документация SQL гласит:

Текстовые литералы имеют свойства как CHAR, так и VARCHAR2 типы данных:

  • В выражениях и условиях Oracle обрабатывает текстовые литералы, как если бы они имели тип данных CHAR, сравнивая их с использованием семантики сравнения с пробелами.

  • Текстовый литерал может иметь максимальную длину 4000 байтов.

Или для PL / SQL :

Строковый литерал может содержать до 32 767 символов.

Разделить ваш 'text with 2 million characters' на куски по 4 или 32 КБ и добавить каждый из них.

...