现在有一个将近400M的XML文件要导入ORACLE,结构类似下面的XML<?xml version="1.0" encoding="gb2312"?>
<WholeMsg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="" Type="">
<Body>
<PEOPLE id="201001301">
<attribute value="zhangsan" name="pname"/>
<attribute value="1" name="sex"/>
<attribute value="23" name="age"/>
</PEOPLE>
<PEOPLE id="201001302">
<attribute value="lihai" name="pname"/>
<attribute value="1" name="sex"/>
<attribute value="24" name="age"/>
</PEOPLE>
.....
</Body>
</WholeMsg>.现在试了两种方法,一种是xmldocument.parse,应该是DOM解析的.
另外一种是XMLTYPE table,通过extractvalue解析,
但是这种方法一个是耗时很长,另外就是经常会包内存不足的错误.这个问题已经困扰我快两个星期了,一直在研究oracle xml db的文档,但是收效甚微啊,请问各位大侠有没有这方面的经验啊,愁死我了快!

解决方案 »

  1.   

    1:用CLOB字段直接存文件 
    2:前端应用解析后 插入
    3:加大PGA,指导XML解析不出现问题
      

  2.   


    1. 尝试过CLOB直接存入,但是我2G的内存到最后还是报错了.用的是insert bfilename插入的
    2. 你说的前端解析是什么方法啊? dom? sax(不是很会用)?或者是oracle的方法
    3. 这个文件太大了,到报错也基本得3个小时,反复测试效率极低啊
      

  3.   

    要不你试试office 2010 xml文件处理功能组,
    excel  2010就可以导入xml文件了,
    然后再从这个中间文件导入oracle,看看快不快。