【问题标题】:Extract value from XMLTYPE using PL/SQL, SQL, Oracle使用 PL/SQL、SQL、Oracle 从 XMLTYPE 中提取值
【发布时间】:2015-08-24 17:50:37
【问题描述】:
我有一个返回 XMLTYPE 的 PL/SQL 函数,我想
从“结果”标签中提取值,在本例中为“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>
感谢您的帮助 - 非常感谢
【问题讨论】:
标签:
sql
oracle
oracle11g
xmltype
【解决方案1】:
此查询返回结果标签的值(本例中为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() 应用于您的函数结果