sql - 从 SQL 查询结果集中的 xml 列中提取子字符串
问题描述
我在Oracle 12 数据库MYTABLE
中有一个表和列。该列包含如下字符串,长度不同 -MYXML
MYXML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:NodeData xmlns:ns2="http://abcd.org/xyz/schema/">
<Head msgId="ACVF63980FGQW56123" orgId="12345" ts="2017-04-13T18:37:27+05:30" ver="1.0"/>
<Info>
<Identity id="45298" verifiedName="MFROMLA" type="TECH"/>
<Rating name="HIGH"/>
</Info>
<Node Name="PQ" Desc="PreQualified" NodeID="2387ajdh231dqhhg21098"/>
</ns2:NodeData>
我想PQ
使用 SQL 查询仅从该列值中提取。我怎么做?如果可能的话,我应该能够使用Name
标签进行搜索并提取其值。
解决方案
这是您可以使用的一个查询,它从您的 xml 字符串Name
中提取节点的属性。Node
假设MYXML
数据类型是VARCHAR2
SELECT EXTRACT(xmltype(myxml), '/Node/@Name')
FROM mytable;
推荐阅读
- react-native - 我需要从 axios 拦截器内部调用 mobx 操作
- docker - 从 docker 容器内的 gitlab-runner 发出命令
- c++ - C++ 中的这个指针可能是 0xffffffff
- c++ - 二维数组的动态邻接表
- python - 即使没有集中在 tkinter 中,如何在文本区域中保持文本选择可见
- java - 在 intellij 上“未安装 Git”
- spartacus-storefront - 将 CDS 与 Spartacus 集成时出现问题
- php - 带过滤器的页面导航
- javascript - Azure Application Insights - 在 Javascript 中具有自定义属性的 trackEvent
- firebase - Mac os x 设备上的 Unity 排行榜 - Pubnub、Playfab 还是 Firebase?