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

Extract value from XMLTYPE using PL/SQL, SQL, Oracle

我有一个 PL/SQL 函数,returns 一个 XMLTYPE,我想 从 "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>

感谢您的帮助 - 非常感谢

此查询return结果标签的值(在本例中为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() 应用于函数的结果