我在将非常大的XML文件加载到Oracle DB(80MB)时遇到问题。 XML文件是这样的:我试图让它工作将大型XML文件导入/加载到Oracle
<?xml version="1.0" encoding="utf-8"?>
<names>
<catalog>
<row>
<col name="NAME">John</col>
<col name="SURNAME">Smith</col>
<col name="AGE">24</col>
</row>
<row>
<col name="NAME">Matt</col>
<col name="SURNAME">Lick</col>
<col name="AGE">14</col>
</row>
</catalog>
</names>
代码如下所示:(我等待4H的请求结束)
CREATE directory TEST_DIR AS 'c:\Test';
INSERT INTO NAMES(NAME,SURNAME,AGE)
WITH t AS (SELECT xmltype(bfilename('TEST_DIR','NAMES.xml'), nls_charset_id('UTF8')) xmlcol FROM dual)
SELECT extractValue(value(x),'/row/col[@name="NAME"]') NAME
,extractValue(value(x),'/row/col[@name="SURNAME"]') SURNAME
,extractValue(value(x),'/row/col[@name="AGE"]') AGE
FROM t,TABLE(XMLSequence(extract(t.xmlcol,'/names/catalog/row'))) x;
我得到的是无限循环当我尝试使用一个小的文件,如40MB,它的工作原理 - 我得到的信息是在253s中插入了160 000条记录。 是否有任何参数或可以使此导入工作以及更大的文件?我做错了什么?
欢呼声
感谢您的帮助!我编写了一些STAX Java解析器,它工作得非常快速而且流畅!谢谢 – user3464862