批量查询存储在oracle数据库表xmltype列中的大型xml文件的最快方法是什么?



我有一个Oracle xmldb表,其中包含一个xmltype列,该列有多个大型xml记录。每个xml的大小约为100MB,其中一部分具有重复元素。在每个xml中,重复元素的数量可以达到几千。我只需要读取重复的元素。读取元素集合批次中重复元素的最佳方法是什么?假设批处理大小可以是一次50个重复元素。我已经使用DBMS_XMLGEN编写了代码,以便有效地批量编写xml,但无法找到一种方法来执行类似的批量读取。请建议一个有效的方法。

我已经找到了用一个sql查询完成此操作的几种方法。

方法1:

With在sql查询中:1. 创建一个包含重复xml元素列的xmltable。2. 选择包含每个重复元素

的列

select elements.* from xmltable('//*/parent[@name="E1"].*' passing xml columns repeating_element xmltype path '/repeatingElement') elements;

方法2:

使用table()操作符:查询看起来像这样:select elements.* from table(xmlsequence(extract(xml, '//*/parent[@name="E1"]/repeatingElement'))) elements;

使用上述任意查询,在此sql查询上打开一个带有limit子句的游标,以批量查询记录

相关内容

  • 没有找到相关文章

最新更新