论坛首页 综合技术论坛

Oracle 字符串截取,原来懂来的,现在又不会了

浏览 5664 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-04-05   最后修改:2012-04-16

有很多xml,其中一个xml
<?xml version="1.0" encoding="GBK"?>
<userinfo>
<userid>123</userid>
<useracct>xxxx@xx.xxx</useracct>
<username>张三</username>
<userdesc>张三</userdesc>
<value>在岗</value>
</userinfo>

这些xml存在oracle数据库 AAAA表里,AAAA仅有一个字段t_xml
我现在要从xml里提取username----张三

 

 

Oracle 字符串截取无非就2个东东,一个substr,一个instr


select substr(t.t_xml,instr(t.t_xml,'<username>',1,1)+10,instr(t.t_xml,'</username>',1,1)-instr(t.t_xml,'<username>',1,1)-10) from aaaa  t


问问各位大神,有什么更好的sql语句

 

   发表时间:2012-04-06  
难道这是问题太幼稚了
0 请登录后投票
   发表时间:2012-04-07  
substr 第三参数是lenght,不是endindex
对xml用extractvalue,直接xpath明确多了
select extractvalve(xmltype(t_xml),('/userinfo/username[1]')) from t
0 请登录后投票
   发表时间:2012-04-07  
谢谢,受教了
0 请登录后投票
   发表时间:2012-04-13  
你是要取这个username这个标签的值吗? 如果是取值: select rtrim(ltrim('<username>张三</username>','<username>'),'</username>') from dual。把这个SQL稍微改一改就可以了
0 请登录后投票
   发表时间:2012-04-14  
用oracle中的正则表达式,试试!
0 请登录后投票
   发表时间:2012-04-16  
搞清楚哪些内置函数中各个参数的含义
0 请登录后投票
   发表时间:2012-04-19  
关系数据库这么用啊。。。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics