Xml节点名称使用SQL进行解析

时间:2014-05-15 11:41:34

标签: sql xml xml-parsing oracle11g

我需要获取标签“supervisor .....”的值。问题是这些标签名称是动态的,它们会为每个人而改变。我尝试过使用Extract值,但仅当您使用静态标记名称时才有效。

在Oracle环境中。

感谢您的帮助。

Ourson

XML Extract
    <?xml version="1.0" encoding="UTF-8"?>
    <TRANSACTION>
       <TransCtx>
          <supervisorCalcAttributes classType="Ht">
             <SupervisorId10977 classType="s">Matt, Clinton</SupervisorId10977>
             <SupervisorId4753 classType="s">Bob, Sponge</SupervisorId4753>
             <FND_ENTERPRISE_ID classType="s">1</FND_ENTERPRISE_ID>
          </supervisorCalcAttributes>
       </TransCtx>
    </TRANSACTION>

SQL查询

select
Extractvalue( xmltype('<root>'||txndata.data_cache||'</root>'),
'root/TRANSACTION[1]/TransCtx[1]/supervisorCalcAttributes[1]/**LineItem**[1]' ) as test
from hrc_txn_data txndata, hrc_txn_header txnhe 
where txnhe.transaction_id=txndata.transaction_id 

0 个答案:

没有答案