检查Oracle查询执行计数

时间:2016-01-28 07:22:53

标签: database oracle oracle11g xml-parsing rdbms

我正在使用此循环来解析XML。

substring-after(//tr[@data-project-key='AA']/td[@data-cell-type='name']/a/@id,'view-project-')

xml的格式:

Use Tidy

解析后,我将元素详细信息值传递给其他过程: 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) <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> 。 因此,在上面的示例中,循环将运行两次。
我的问题是:每当循环运行时,它执行select查询来解析整个xml或仅解析第一个详细信息标记然后解析第二个?

1 个答案:

答案 0 :(得分:0)

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