You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中如何通过XML标签及id属性从CLOB列提取指定值

错误原因

  1. 第一条语句无返回是因为XPath筛选条件写法错误:你XML中的id是Member节点的属性,而非子节点,需要用@前缀标识属性,你写的[id=1]是筛选「拥有值为1的<id>子节点」的Member节点,匹配不到自然无返回。
  2. 第二条语句返回拼接值是因为没有加筛选条件,会匹配所有Member下的Name节点文本,自动拼接后就得到了JohnPeter。

正确写法

调整原extract写法

只需要把筛选条件改为[@id="1"]即可:

select xmltype(clob_column).extract('//Home/Member[@id="1"]/Name/text()').getStringVal() from MY_TABLE;

更推荐的标准写法(兼容Oracle新版本)

extract函数在新版Oracle中已被标记为弃用,推荐使用标准的XMLQUERY函数实现:

select XMLQUERY('/Home/Member[@id="1"]/Name/text()' PASSING xmltype(clob_column) RETURNING CONTENT).getStringVal() from MY_TABLE;

内容的提问来源于stack exchange,提问作者Ramnarong Pitth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:36:02