检查 Oracle 查询执行计数
Check Oracle Query Execution Count
我正在使用这个循环来解析 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
。
因此,在上面的示例中,循环将 运行 两次。
我的问题是:每当循环 运行s 时,它都会执行 select 查询来解析整个 xml还是只有第一个详细信息标签,然后是第二个?
在FOR循环查询中执行一次。
然后 Oracle 使用游标进行迭代。
(它为查询结果的每一行执行循环体)。
我正在使用这个循环来解析 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
。
因此,在上面的示例中,循环将 运行 两次。
我的问题是:每当循环 运行s 时,它都会执行 select 查询来解析整个 xml还是只有第一个详细信息标签,然后是第二个?
在FOR循环查询中执行一次。
然后 Oracle 使用游标进行迭代。
(它为查询结果的每一行执行循环体)。