Каков предел для импорта JSON в столбец clob в Oracle 12.2c? - PullRequest
0 голосов
/ 29 января 2019

Использовал следующий код:

CREATE TABLE json_documents (
    id    RAW(16) NOT NULL,
    data  CLOB,
    CONSTRAINT json_documents_pk PRIMARY KEY (id),
    CONSTRAINT json_documents_json CHECK (data IS JSON (STRICT))
  );

для импорта:

declare
  b BFILE := bfilename('MY_DIR', 'jdeals.json');
  c clob;

  l_dest_offset   INTEGER := 1;
  l_src_offset    INTEGER := 1;
  l_bfile_csid    NUMBER  := 0;
  l_lang_context  INTEGER := 0;
  l_warning       INTEGER := 0;
begin
  dbms_lob.open(b);
  dbms_lob.createtemporary(c, TRUE);
  dbms_lob.loadclobfromfile(c, b, dbms_lob.getlength(b),l_dest_offset,l_src_offset,nls_charset_id('AL32UTF8'),l_lang_context,l_warning);

  INSERT INTO json_documents (id, data)
  VALUES (SYS_GUID(), c);


  dbms_lob.freetemporary(c);
  DBMS_LOB.FILECLOSEALL;

  commit;
end;

Дело в том, что он работает с несколькими килобайтами json-файла, он работает с 2-гигабайтным json, но мне нужноимпортировать 10-гигабайтный файл json, и он продолжает выдавать нарушение ORA-02290. Нарушение .json_documents_json нарушено.До сих пор я пытался: создать таблицу без ограничения json и использовать для нее запрос json (конечно, это не удалось), создать ограничение json после вставки данных (получить тот же ORA-02290)

Запросс select * показывает столбец DATA с разработчиком в pl / SQL (возможно, ограничение для разработчика pl / SQL).Получение длины столбца показывает точное количество байтов в файле, так что я уверен, что все данные есть, и я уверен, что это действительный JSON.

Итак, мой вопрос:

Существует ли ограничение размера для столбца CLOB для создания на нем ограничения JSON?

...