【发布时间】:2016-05-05 10:54:43
【问题描述】:
我正在使用这个循环来解析 XML。
FOR elementdetails in
(SELECT ExtractValue(Value(elementdetails),'/details/Id/text()') AS Id,
Extract(Value(elementdetails),'/details/GrpId') AS Idgrp,
ExtractValue(Value(elementdetails),'/details/SrCd/text()') AS PId
FROM TABLE(XMLSequence(Extract(Block,'/Records/Body/details)))
elementdetails)
xml格式:
<Records>
<Body>
<details>
<Id>1</Id>
<GrpId>15</GrpId>
<SrCd>2</SrCd>
</details>
<details>
<Id>2</Id>
<GrpId>5</GrpId>
<SrCd>6</SrCd>
</details>
</Body>
</Records>
解析后,我将这样的元素详细信息值:elementdetails.Id 传递给其他过程。
因此,在上面的示例中,循环将运行两次。
我的问题是:每当循环运行时,它都会执行选择查询来解析整个 xml,还是只解析第一个详细信息标签,然后再解析第二个?
【问题讨论】:
标签: database oracle oracle11g xml-parsing rdbms