Oracle 中XML处理函数介绍

所属分类: 数据库 / oracle 阅读数: 1527
收藏 0 赞 0 分享

1. EXTRACT(XMLType_instance,Xpath_string)

该函数用于返回XML节点路径下的相应内容

示例:

复制代码 代码如下:
SELECT extract(value(a),'/root/main') data FROM xmltable a ;

2. EXTRACTVALUE(XMLType_instance,Xpath_string)

该函数用于返回特定XML节点路径的数据

示例:

复制代码 代码如下:
SELECT extractvalue(value(a),'/root/main/姓名') data FROM xmltable a ;

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. XMLFOREST(value_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('1'), xmltype('2'), xmltype('3'))
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('1名字12名字2'), '/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

基本就是这样了,小编细心帮大家整理了一下代码格式,希望能帮到大家。

更多精彩内容其他人还在看

Oracle下的Java分页功能_动力节点Java学院整理

分页的时候返回的不仅包括查询的结果集(List),而且还包括总的页数(pageNum)、当前第几页(pageNo)等等信息,所以我们封装一个查询结果PageModel类,具体实现代码,大家参考下本文
收藏 0 赞 0 分享

Win7 64位下PowerDesigner连接64位Oracle11g数据库

这篇文章主要为大家详细介绍了Win7 64位下PowerDesigner连接64位Oracle11g数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

PowerDesigner15.1连接oracle11g逆向生成ER图

这篇文章主要为大家详细介绍了PowerDesigner15.1连接oracle11g逆向生成ER图的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

解决Oracle批量修改问题

这篇文章主要介绍了解决Oracle批量修改问题,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle的out参数实例详解

这篇文章主要介绍了Oracle的out参数实例详解的相关资料,这里提供实例帮助大家理解这部分内容,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Oracle在out参数中访问光标

这篇文章主要介绍了详解Oracle在out参数中访问光标的相关资料,这里提供实例代码帮助大家学习理解这部分内容,希望能帮助到大家,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Oracle调试存储过程

这篇文章主要介绍了详解Oracle调试存储过程的相关资料,这里提供实例帮助大家学习理解这部分内容,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle的CLOB大数据字段类型操作方法

VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同。接下来通过本文给大家分享Oracle的CLOB大数据字段类型操作方法,感兴趣的朋友一起看看吧
收藏 0 赞 0 分享

oracle中左填充(lpad)和右填充(rpad)的介绍与用法

这篇文章主要跟大家介绍了关于oracle中左填充(lpad)和右填充(rpad)的相关资料,通过填充我们可以固定字段的长度,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
收藏 0 赞 0 分享

Oracle回滚段使用查询代码详解

这篇文章主要介绍了Oracle回滚段使用查询代码详解的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多