加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Oracle中选择xml元素值

发布时间:2020-12-12 13:11:34 所属栏目:百科 来源:网络整理
导读:我试图从位于Oracle表的 XMLTYPE列中的xml元素中提取值.我尝试提取的xml元素具有为其定义命名空间的父元素. xml看起来像: a b xmlns="urn:www.someSite.com/myModel" cmy value/c /b/a 如果我想提
我试图从位于Oracle表的 XMLTYPE列中的xml元素中提取值.我尝试提取的xml元素具有为其定义命名空间的父元素.
xml看起来像:
<a>
  <b xmlns="urn:www.someSite.com/myModel">
    <c>my value</c>
  </b>
</a>

如果我想提取“a”元素的内容,则会正确返回其上下文:

SELECT Extract(myColumn,'/a') FROM myTable;

但是为了返回“c”元素的内容,我没有成功找到任何版本.以下说明不起作用:

SELECT Extract(myColumn,'/a/b/c') FROM myTable;

SELECT Extract(myColumn,'/a/b/c','xmlns="urn:www.someSite.com/myModel"') FROM myTable;

SELECT Extract(myColumn,'urn:www.someSite.com/myModel') FROM myTable;

任何人都可以帮助我,在这种情况下可以使用提取语句吗?

由于a元素没有命名空间,因此您可以首先提取其子元素而不在函数中使用命名空间,然后使用命名空间从b中提取值:
尝试:
select extract(extract(myColumn,'a/*'),'b/c/text()','xmlns=urn:www.someSite.com/myModel') 
  from myTable

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读