【问题标题】:Check Oracle Query Execution Count检查 Oracle 查询执行计数
【发布时间】: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


    【解决方案1】:

    在 FOR 循环中执行一次查询。
    然后 Oracle 使用游标进行迭代。
    (对每一行查询结果执行循环体)。

    【讨论】:

      猜你喜欢
      • 2012-09-02
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 2017-01-04
      • 2014-10-20
      相关资源
      最近更新 更多