将XML文件插入Oracle表

时间:2016-06-30 10:39:36

标签: xml oracle

我有包含13列的XML文件。我想在Oracle表中加载与文件具有相同列的文件。 我尝试用外部表插入它。由于缺少某些标记,它会加载XML文件中记录数量的一半

我在日志文件中收到错误消息

KUP-04021:字段PREVIOUSCUSTOMEREXPERIENCE的字段格式错误 KUP-04035:未找到开始封闭分隔符 KUP-04101:文件E中拒绝记录445:\ Oracle \ Reddy_Test_Dir \ resources.xml

对于此记录,XML文件中缺少标记。

任何人都可以建议如何加载所有这些记录

谢谢:)

1 个答案:

答案 0 :(得分:1)

问题出在哪里。

我认为你以这种方式定义了外部表。

create table bleble ORGANIZATION EXTERNAL belbe...
  ACCESS PARAMETERS (
      RECORDS DELIMITED BY '</row>'
      FIELDS (
         Col1 CHAR(100) ENCLOSED BY '<Name>' AND '</Name>',
         col2 CHAR(100) ENCLOSED BY '<Name2>' AND '</Name2>')
  )

xml看起来像

<rowset>
  <row>
    <name>aa</name>
    <name2>aa</name2>
  </row>
  <row>
    <name>bb</name>
  </row>
</rowset>

外部表找不到col2的封闭分隔符,它会抛出错误。

我的建议是寻找处理xml的其他方法。

  1. DBMS_XMLSTORE或DBMS_XMLSAVE。
  2. Oracel XDB存储库。 (很难)
  3. 以xmltype格式导入和保存文档。 xmltype可以由xmltable处理。