Oracle 中XML处理函数介绍_oracle

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

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

时间: 2024-09-20 07:38:30

Oracle 中XML处理函数介绍_oracle的相关文章

oracle中的trim函数使用介绍_oracle

Oracle TRIM函数是很常见的函数,下面对Oracle TRIM函数的语法作了详尽的阐述说明,希望可以让您对Oracle TRIM函数有更深的认识. 如果提到Oracle TRIM函数,最简单的功能就是使用它来去除字符串的行首和行尾的空格,这个功能也是大家使用频率最高的一种. 然而Oracle TRIM函数其实是具有删除"任意指定"字符的功能,不可谓不牛.我们来一次体验之旅. 1.先看一下Oracle TRIM函数的完整语法描述 TRIM([ { { LEADING | TRAI

SQL中Charindex和Oracle中对应的函数Instr对比_oracle

sql :charindex('字符串',字段)>0 charindex('administrator',MUserID)>0 oracle:instr(字段,'字符串',1,1) >0 instr(MUserID,'administrator',1,1)>0 在项目中用到了Oracle中 Instr 这个函数,顺便仔细的再次学习了一下这个知识. Oracle中,可以使用 Instr 函数对某个字符串进行判断,判断其是否含有指定的字符. 其语法为: Instr(string, su

oracle中的聚合函数count、max、min、sum、avg等等

前面我们介绍了很多oracle中单行函数,在oracle中还存在另一类函数,那就是聚合函数,oracle中的聚合函数非常有用,主要是用来做些统计.平均之类的工作,你必须牢记. 先简单介绍一下几个常用的oracle中的聚合函数. Oracle中聚合函数名称 函数的作用 Count 用来求有效数据的数量 Max 用来求给定数据中最大的那一个数据 Min 用来求给定数据中最小的那一个数据 Avg 用来求给定数据的平均值 Sum 用来求给定数据的总和 Variance 用来求给定数据的标准差 Stdde

PHP SPL标准库中的常用函数介绍

  这篇文章主要介绍了PHP SPL标准库中的常用函数介绍,本文着重讲解了spl_autoload_extensions().spl_autoload_register().spl_autoload()三个函数,需要的朋友可以参考下 PHP SPL标准库中提供了一些函数用来处理如自动加载.迭代器处理等. spl_autoload_extensions()添加spl_autoload()可加载的文件扩展名 spl_autoload_register()注册函数到SPL __autoload函数栈中

oracle中110个常用函数介绍_oracle

1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2. CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C --

oracle中的正则表达式函数regexp_instr

前面我们介绍了oracle中的正则表达式组常用的一个函数regexp_like,这里我们在介绍一个函数regexp_instr.这个正则表达式函数用的不如前一个多,但也会偶尔会用到.这个函数其实与我们前面曾介绍的instr函数其实相似. regexp_instr的原型如下: regexp_instr(x,pattern[,start[,occurrence[,return_option[,match_option]]]]) 这里每个参数分别含义如下: x  待匹配的字符串 pattern 待匹配

PHP SPL标准库中的常用函数介绍_php技巧

PHP SPL标准库中提供了一些函数用来处理如自动加载.迭代器处理等. spl_autoload_extensions()添加spl_autoload()可加载的文件扩展名 spl_autoload_register()注册函数到SPL __autoload函数栈中. 复制代码 代码如下: /*test1.php*/ <?php class Test1 { }   /*test2.lib.php*/ <?php class Test2 { }   /*test.php*/ <?php /

探讨Oracle中的&amp;amp;号问题_oracle

在Oracle中inset里面的内容如果中有'&'号,有可能会插入失败,下面介绍一下方法:1.在pl/sql中:&可以用&&代替2.在sql developer中:&可以用||chr(38)||代替

Oracle创建自增字段--ORACLE SEQUENCE的简单使用介绍_oracle

先假设有这么一个表: 复制代码 代码如下: create table S_Depart ( DepartId INT not null, DepartName NVARCHAR2(40) not null, DepartOrder INT default 0, constraint PK_S_DEPART primary key (DepartId) ); 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方. 1.Create Sequen