使用PL / SQL,SQL,Oracle从XMLTYPE中提取值

时间:2015-08-24 17:50:38

标签: sql oracle oracle11g xmltype

我有一个返回XMLTYPE的PL / SQL函数,我想这样做 从“result”标记中提取值,在这种情况下为“0”。 XMLTYPE在下面。

<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><ns2:runSeriatimValuationResponse xmlns:ns2="http://seriatim.ipvfbm.pbgc.gov/">
<result>0</result>
</ns2:runSeriatimValuationResponse>
</S:Body>
</S:Envelope>

感谢您的帮助 - 非常感谢

1 个答案:

答案 0 :(得分:0)

此查询返回结果标记的值(在这种情况下为0):

SELECT XMLTYPE('<?xml version=''1.0'' encoding=''UTF-8''?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><ns2:runSeriatimValuationResponse xmlns:ns2="http://seriatim.ipvfbm.pbgc.gov/">
<result>0</result>
</ns2:runSeriatimValuationResponse>
</S:Body>
</S:Envelope>').EXTRACT('//result/text()').getStringVal() result
FROM dual;

在您的情况下,您不需要转换为XMLTYPE,只需将EXTRACT('//result/text()').getStringVal()应用于您的函数结果