我的数据库中有 3 个表,我正在它们上运行 XML 进程。
- XML 数据
- XML 恢复数据
- 转换器(用于从 XML 恢复数据创建 XML 数据的 XSLT)
我在 Java 应用程序端执行这些步骤,同时从这些表中检索数据。
- 检索 XML 数据。
- 如果 XML 数据不存在,则在 XML 恢复数据中搜索其恢复。
- 如果找到 XML Recovery,请从 Transformers 中查找从恢复表检索到的 XML 对应的 XSLT。
- 使用 Transformer XSLT 转换恢复 XML。
- 将结果插入 XML 数据表。
- 返回 XML 数据。
众所周知,解析和转换过程是 Java 应用程序上的高性能成本过程。此场景中还有 4 个数据库访问。
在 Oracle DB 端执行这些过程有什么缺点吗? Oracle 使用一个非常原生的引擎作为 XML 解析器,它是用 C 编写的。我的数据库访问权限只有 1。但我不确定将某些字段保留为 XMLTYPE 的成本以及这种用法的缺点。
最佳答案
是的,我认为在oracle数据库中这样做会更加优化性能。您有两个选择(假设您有 Oracle 11g):
1) 创建 Java 代码库的“静态”入口方法,并使用“loadjava”将其导入到 Oracle 数据库中。
http://docs.oracle.com/cd/B28359_01/java.111/b31225/chthree.htm
2)使用oracle内置功能。</p>
[XMLTYPE.TRANSFORM(myxml, myxsl)][2]
关于java - 运行 XSL 转换 oracle db,而不是 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286038/