将JSON导入oracle 12.2c中的clob列有什么限制?

时间:2019-01-29 10:14:51

标签: json oracle oracle12c

使用了以下代码:

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;

问题是它可以处理几个kb的json文件,它可以处理2gb的json文件,但我需要导入10gb的json文件,并且它会不断抛出ORA-02290检查违规.json_documents_json。 到目前为止,我尝试过:创建没有json约束的表并对其使用json查询(当然会失败),在插入数据后创建json约束(获取相同的ORA-02290)

使用select *查询显示在pl / SQL开发人员中有DATA列(可能是对pl / SQL开发人员的限制)。获取列的长度将显示文件的确切字节数,因此我确定所有数据都在其中,并且我确定它是有效的JSON。

所以我的问题是:

  

CLOB列在其上构建JSON约束是否有大小限制?

0 个答案:

没有答案