Oracle数据库中SYS.XMLTYPE类型子内容查询的问题

cftfns 2013-06-30 11:10:31
数据库表t_document的结构如下:id、content,其中id为NUMBER类型的主键,content为SYS.XMLTYPE类型(存储的是自定义的XML格式文档),内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<COLS>
<DATE><![CDATA[2013-02-16]]></DATE>
<RECORD_ID><![CDATA[172211]]></RECORD_ID>
<NUMBER><![CDATA[83]]></NUMBER>
</COLS>

请问如何利用SQL语句查出主键id=10的NUMBER所对应的值(83)?

查询显示结果:
ID NUMBER
10 83
...全文
555 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cftfns 2013-07-03
  • 打赏
  • 举报
回复
再顶一下。大家帮忙看看,谢了。
SIRIUS_ORA 2013-07-03
  • 打赏
  • 举报
回复
select code,extractValue(info,'/COLS/NUMBER') from MY_XMLTYPE where existsnode(info,'/COLS/NUMBER = 83') = 1 and code = 10;
SIRIUS_ORA 2013-07-03
  • 打赏
  • 举报
回复
create table MY_XMLTYPE ( CODE NUMBER, INFO SYS.XMLTYPE ); declare my_xml clob := '<?xml version="1.0" encoding="UTF-8"?> <COLS> <DATE><![CDATA[2013-02-16]]></DATE> <RECORD_ID><![CDATA[172211]]></RECORD_ID> <NUMBER><![CDATA[83]]></NUMBER> </COLS>'; my_xml1 clob := '<?xml version="1.0" encoding="UTF-8"?> <COLS> <DATE><![CDATA[2013-06-16]]></DATE> <RECORD_ID><![CDATA[172211]]></RECORD_ID> <NUMBER><![CDATA[123]]></NUMBER> </COLS>'; begin insert into MY_XMLTYPE values(10,xmltype(my_xml)); insert into MY_XMLTYPE values(11,xmltype(my_xml1)); commit; end; select * from MY_XMLTYPE where existsnode(info,'/COLS/NUMBER = 83') = 1 and code = 10;
cftfns 2013-07-01
  • 打赏
  • 举报
回复
自己顶一下。

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧