[英]How to parse XML input field for specifc value using Oracle Sql?
我在编写从表(card_type)中选择数据的查询时遇到困难。 我只需要在Name标签中包含“ PARTNER_CD”的地方解析xml属性(EXT_PROPERTIES_XML)。 以下是xml属性的示例。
<Properties>
<Property>
<Name>PARTNER_CD</Name>
<Value>LOBT</Value>
</Property>
<Property>
<Name>REJECT_AT_PUMP</Name>
<Value>true</Value>
</Property>
<Property>
<Name>MAX_LITRE</Name>
<Value>75</Value></Property>
</Properties>
<Properties>
<Property>
<Name>PARTNER_CD</Name>
<Value>PET1</Value>
</Property>
<Property>
<Name>REJECT_AT_PUMP</Name>
<Value>true</Value>
</Property>
<Property>
<Name>MAX_LITRE</Name>
<Value>75</Value></Property>
</Properties>
所需输出:
NAME VALUE
-------------------------
PARTNER_CD LOBT
PARTNER_CD PET1
这就是我尝试过的
Select xmltype.createxml(EXT_PROPERTIES_XML).extract('/Properties/Property/Name/text()').getStringVal() as Name,
xmltype.createxml(EXT_PROPERTIES_XML).extract('/Properties/Property/Value/text()').getStringVal() as Value
from card_type
我得到的输出是:
Name Value
PARTNER_CDREJECT_AT_PUMPMAX_LITRE LOBTtrue75
任何帮助都非常感谢。 谢谢。
您可以使用XMLQuery或XMLTable提取数据:
select x.*
from card_type c
cross join xmltable('/Properties/Property'
passing xmltype(ext_properties_xml)
columns name varchar2(20) path 'Name',
value varchar2(20) path 'Value'
) x
where name = 'PARTNER_CD';
NAME VALUE
-------------------- --------------------
PARTNER_CD LOBT
PARTNER_CD PET1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.