Welcome 微信登录

首页 / 数据库 / MySQL / 在Oracle的XMLType里查询数据

在Oracle的XMLtype的查询操作: 查询对象样例:表名:etab,第一列为varchar2() 名称为id,第二列为xmltype 列名为xmlcol,其中一行为,id字段的值为:aaxmlcol字段的值为:
  1. <ProductMetaData>  
  2.     <SatelliteID>02B</SatelliteID>      
  3.     <ReceiveStationID>BRA</ReceiveStationID>  
  4.     <SensorID aa="ExAttr">CCD</SensorID>  
  5.     <ReceiveTime>2003-06-30 22:12:24</ReceiveTime>  
  6.     <OrbitID>448</OrbitID>  
  7. </ProductMetaData>  
1:extract作用:提取出XML串中指定节点的值(包含节点两端的标记),结果还是为clob的格式可用column.extract("//xxx/xx"),或extract(column,"//xxx/xx")的语法    例如: 
    select t.id,t.xmlcol.extract("//ProductMetaData/SensorID") from etab t
    select t.id,extract(t.xmlcol,"//ProductMetaData/SensorID") from etab t
    提取出的内容为(仍为CLOB的格式): <SensorID aa="ExAttr">BRA</SensorID>   还可以在之后加上/text()获取其内部文字(结果还是为clob的格式)    例如:     select t.id,t.xmlcol.extract("//ProductMetaData/SensorID/text()") from etab t    提取出的内容为(仍为CLOB的格式):BRA 或在之后加上/@att获取节点的属性值    例如:    select t.id,t.xmlcol.extract("//ProductMetaData/SesorID/@aa") from etab t    提取出的内容为(仍为CLOB的格式):ExAttr 对于查找到的结果,可以使用getnumberval()或getstringval()函数将结果转化为需要的文字或数字    例如:     select t.id,t.xmlcol.extract("//ProductMetaData/SensorID/text()").getstringval() from etab t    提取出的内容为(文本格式):BRA     select t.id,t.xmlcol.extract("//ProductMetaData/OrbitID/text()").getnumberval() from etab t    提取出的内容为(数字格式,可用于条件判断,例如大于小于):448     提取内容作为条件判断:    select t.id from etab t where t.xmlcol.extract("//ProductMetaData/OrbitID/text()").getnumberval() > 440 2.extactrvalue作用:提取出XML串中指定节点的值(不包含节点两端的标记),结果为文本格式(如果值是数字的话,好像也可以认为是数字格式,也能用于查询里的条件判断)只能使用extractvalue(column,"//xxx/xx")的格式    例如:    select t.id,extractvalue(t.xmlcol,"//ProductMetaData/SensorID") from etab t    提取出的内容为文本格式的PMS        select t.id from etab t where t.xmlcol.extract("//ProductMetaData/OrbitID/text()").getnumberval() > 2440Oracle 11g alert文件变化Oracle EBS订单的流程[多图]相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数