检查 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 使用游标进行迭代。
(它为查询结果的每一行执行循环体)。