首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以批方式查询存储在oracle数据库表中xmltype列中的大型xml的最快方法是什么?

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

Stack Overflow用户
提问于 2016-10-31 16:51:38
回答 1查看 500关注 0票数 0

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-15 10:59:32

我已经想出了几种用一个sql查询来完成这个任务的方法。

方法1:

在sql查询中使用: 1.创建一个带有列的xmltable,用于重复xml元素。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查询上打开带有限制子句的游标,以批量查询记录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40346774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档