使用Oracle解析器使用Java或Parsing进行解析

时间:2015-10-22 11:35:08

标签: xml oracle xml-parsing informatica

我在文件系统(Unix / Windows)上有XML文件,我需要解析并填充具有所需属性的表。我在Java上编写了一个DOM解析器,它将XML作为输入并将/ parses转换为分隔文件。然后,我使用间接文件加载由Informatica填充表。这个表现相当不错 但是,我的一位前辈告诉我,不需要转换成分隔文件然后放入表格。相反,他让我将XML文件直接放入表的一列(最好是CLOB或XMLType),然后使用Oracle的XML解析器来解析文件。
我知道通过Oracle的解析器可以进行XML解析,但是建议将源文件放到数据库表中吗?从设计的角度来看,这个问题更多 感谢您对此的投入。

1 个答案:

答案 0 :(得分:1)

在数据库中存储XML有几个优点。

  1. 需要的技能较少。这个世界上很少有人是Java Informatica Oracle的专家。不总是需要专家;但没有一个解决方案可能永远不会是#34;伟大的"并且可能无法解决棘手的问题。
  2. 转换次数较少错误通常发生在边界,而Java到Informatica到Oracle的文本文件有很多边界。是否所有这些工具都设置为支持国际化?他们都同意日期格式吗?是否有字节顺序标记?这些问题通常比人们意识到的要复杂得多。
  3. 在XML失败时将XML保持在附近。输入文件不可避免地会损坏,并且某些ETL过程将失败。然后将它们放在一个地方非常方便。 (至少在我的行业中,没有人会在应用程序服务器和数据库服务器上拥有权限。)
  4. 效果。高性能是#1和#2的结果;能够聘请一位能够调整系统的专家,并且可以减少需要担心的部件。很多人都可以用Java,Informatica和Oracle编写代码;有多少人可以并行化?如果整个过程并行化,则每Amdahl's law并行性只会有很大帮助。
  5. 使用SQL XML功能进行临时分析。 Oracle提供了一些有用的声明性工具,用于编写针对XML的即席查询。具体来说,XMLTable功能是将XML快速转换为表格的好方法。如果XML是直接的,有时整个工作可以在一个SQL语句中完成,不需要任何过程代码。