我需要从这些元素的列表中提取整个 LinkSnapshot xml 元素。该列表存储在名为“链接”的列中。我已尝试以下操作,但收到错误“19026.00000 - “EXTRACTVALUE 只能检索叶节点的值””
Extractvalue(xmltype(ss.links), '/List/LinkSnapshot') AS "Snapshot"
这是xml
<List>
<LinkSnapshot application="App1" id="application1234" >
<Attributes>
<Map>
<entry key="GenericAccount" value="false"/>
</Map>
</Attributes>
</LinkSnapshot>
</List>
我应该使用不同的命令来提取整个父 LinkSnapshot 节点吗?
使用
XMLQUERY
:
SELECT XMLQUERY(
'//List/LinkSnapshot'
PASSING XMLTYPE(ss.links)
RETURNING CONTENT
) AS snapshot
FROM table_name ss
对于样本数据:
CREATE TABLE table_name (links) AS
SELECT EMPTY_CLOB() || '<List>
<LinkSnapshot application="App1" id="application1234" >
<Attributes>
<Map>
<entry key="GenericAccount" value="false"/>
</Map>
</Attributes>
</LinkSnapshot>
</List>' FROM DUAL;
输出:
快照 |
---|