使用了以下代码:
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约束是否有大小限制?