在oracle查询中读取Xml值

问题描述 投票:0回答:1

我需要从这些元素的列表中提取整个 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 节点吗?

xml oracle oracle-sqldeveloper extract-value
1个回答
0
投票

使用

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;

输出:

快照

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.