我在將非常大的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