【发布时间】:2019-07-22 15:03:05
【问题描述】:
我正在尝试使用 Oracle 从以下 XML 中提取一个字段:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:check xmlns:ns2="http://soap.com" xmlns="http://soap.com/xsd">
<ns2:request>
<orderIDs>201902281425597269</orderIDs>
</ns2:request>
</ns2:check>
</soap:Body>
</soap:Envelope>
我尝试了以下及其变体,但没有运气:
..
XMLTable(XMLNAMESPACES (
'http://soap.com/xsd' AS "ns2"
),
'for $i in //orderIDs return $i'
passing XMLType(sm.REQUEST_XML)
columns "ORDER_ID" VARCHAR2(500) path '/') xt_orderid
..
以上是与其他表交叉连接的查询的一部分。不起作用的是查询没有返回任何结果,所以我猜 XMLTable 命令变成了空。
一个非常相似的提取命令适用于响应,但响应的结构不同。
【问题讨论】: