设为首页 收藏本站
查看: 705|回复: 0

[经验分享] ORACLE中 XML 基本函数介绍

[复制链接]

尚未签到

发表于 2016-8-3 13:30:42 | 显示全部楼层 |阅读模式
  
  
ORACLE 中 XML 基本函数介绍

 

 

1.
EXTRACT
(XMLType_instance,Xpath_string)
该函数用于返回XML节点路径下的相应内容
 
示例: SELECT extract(prj_xml,'/root/main') FROM project t;

 
 
2. EXTRACTVALUEXMLType_instance,Xpath_string)
该函数用于返回特定XML节点路径的数据
 
 
示例: SELECT extractvalue(  prj_xml ,'/root/main/姓名') FROM 
project  t ;
 
3. EXISTSNODE(XMLType_instance,Xpath_string)
  该函数用于确定特定的XML节点的路径是否存在,返回0表示节点不存在,返回1表示节点存在。
 
示例: SELECT existsnode(value(a),'/root/main/住院号') data FROM xmltable a;
  
 
  
4. SYS_DBURIGEN({column|attribute})
  
该函数用于根据列或者属性生成类型为DBUrlType的URL
  
示例: SELECT sys_dburigen(a.DISPLAYNAME) aa FROM v_dept a WHERE a.DISPLAYNAME='矽肺病医院'
  
 
 
5.
SYS_XMLAGG
(expr[,fmt])
  
该函数用于汇总所有XML文档,并生成一个XML文档。
 
示例: SELECT
SYS_XMLAGG(SYS_XMLGEN(a.order_content)) xml_content

  
from doc_clinic_order a, clinics_item b, med_frequencydict c

 
where a.patient_id = 'bd4b425e-a409-4b28-890d-d1d668fcf725'

    and a.parentid = '0'
    and a.route = b.item_id(+)
    and a.frequency = c.frequency_id(+)
   
6.
SYS_XMLGEN(expr[,fmt])

该函数用于根据数据库表的行和列生成XMLType实例。
 
7.
XMLAGG
XMLType_instance[ORDER BY sort_list])
该函数用于汇总多个XML块,并生成XML文档。
 示例: select xmlagg(xmlelement("row",

                         xmlforest(a.frequency_id as "频次ID",
a.frequency_name as "频次名称")))
from med_frequencydict a
 
 
8. XMLFORESTvalue_expr1[,value_expr2],...)
该函数用于返回XML块
 
9. XMLELEMENT(identifier[,xml_attribute_clause][,value_expr])
该函数用于返回XMLType的实例。其中参数identifier用于指定元素名,参数xml_attribute_clause用于指定元素属性子句,参数value_expr用于指定元素值。
示例: SELECT
xmlelement("row",

                  xmlcolattval(a.frequency_code
AS "编码",

                               a.frequency_name
as "名称")) xml

 
from med_frequencydict a

 where a.frequency_code = 'BID'

 
10.
XMLCOLATTVAL
value_expr[,value_expr2],...)
该函数用于生成XML块,参数value_expr用于指定列名或者别名作为属性名。
示例: 

      SELECT xmlelement("row",
            xmlcolattval(a.frequency_code AS "编码",
                               a.frequency_name as "名称")) xml
from med_frequencydict a
where a.frequency_code = 'BID'
  
  
11.
XMLCONCAT
XMLType_instance1[,XMLType_instance2],...)
该函数用于连接多个XMLType实例,并生成新的XMLType实例。
示例: select
xmlconcat(xmltype('<row><no>1</no></row>'),

                
xmltype('<row><no>2</no></row>'),

                
xmltype('<row><no>3</no></row>'))

  
  from
dual


 
12.
XMLSEQUENCE
xmltype_instance)
该函数用于返回XMLType实例中顶级节点以下的VARRAY元素。
示例:select extractvalue(column_value,
'/row/医嘱内容') 医嘱内容

 
from table(xmlsequence(extract((select value(a)

                                   from
xmltable a

                                  where rownum
= 1),

  
                                
'/root/detail/row')))


 
 
13.
UPDATEXML
XMLType_instance,Xpath_string,value_expr)
该函数用于更新特定XMLType实例相应的节点路径的内容
示例: select
updatexml(xmltype('<root><row><no>1</no><name>名字1</name></row><row><no>2</no><name>名字2</name></row></root>'),

                 '/root/row[no=2]/name',
                 '新名字')
 
from dual

  
14.
XMLTRANSFORM
xmltype_instance,xsl_ss)
该函数用于将XMLType实例按照XSL样式进行转换,并生成新的XMLType实例
 
 
15.
DELETEXML
XMLType_instance,Xpath_string)
该函数用于删除特定XMLType实例相应的节点路径的内容
 
 
 
16.XML转换表
 
  
 SELECT * FROM XMLTABLE(' $SQ/root/detail/row' PASSING

               (select value(a) from xmltable a) AS SQ

                COLUMNS 医嘱ID VARCHAR2(50) PATH '/row/医嘱ID',

                    医嘱内容 VARCHAR2(200) PATH '/row/医嘱内容',

                    频次 VARCHAR2(200) PATH '/row/频次',

                    用法 VARCHAR2(200) PATH '/row/用法'  )

 order by 医嘱ID

 
 
 
 
 
 
 
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-252345-1-1.html 上篇帖子: Oracle数据类型------(日期类型一) 下篇帖子: Oracle学习之单行函数_统计函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表