我正在尝试从 Oracle 12C 数据库中的 XMLTYPE COLUMN "ATTRIBUTE_XML2" STORE AS SECUREFILE BINARY XML 中提取数据。
我在我的代码中使用这个选择查询:
select xmlserialize(document a.xmlrecord as clob) as xmlrecord from tablename
ResultSet rset = stmt.executeQuery();
OracleResultSet orset = (OracleResultSet) rset;
while (orset.next()) {
oracle.sql.CLOB xmlrecord = (oracle.sql.CLOB) orset.getClob(1);
Reader reader = new BufferedReader(xmlrecord.getCharacterStream());
}
这里“ orset.getClob
”在 oracle DB 中占用了更多内存,并且我们正在使用 oracle 数据库中的进程内存。目前我们将 XML 类型存储为 CLOB,企业有兴趣将其更改为 BINARY XML。
有没有从 oracle 结果集中检索二进制 XML 的选项?
请注意,我已经尝试过“ orset.getClob
”,这会导致内存错误,因为它将二进制 XML 更改为 clob。
还尝试了“ XMLType xml = (XMLType) orset.getObject(1);
”,这工作正常,但获取 100 万条 XML 记录需要 27 分钟。
而如果表类型存储是 CLOB 而不是 BINARY XML,则同样的 100 万个在 5 分钟内完成。
检索 BINARY XML 还有其他选项吗?