ORACLE 中 XML 基本函數(shù)介紹
1.EXTRACT(XMLType_instance,Xpath_string)
該函數(shù)用于返回XML節(jié)點(diǎn)路徑下的相應(yīng)內(nèi)容
示例: SELECT extract(prj_xml,'/root/main') FROM project t;
2. EXTRACTVALUE(XMLType_instance,Xpath_string)
該函數(shù)用于返回特定XML節(jié)點(diǎn)路徑的數(shù)據(jù)
示例: SELECT extractvalue( prj_xml ,'/root/main/姓名') FROM project t ;
3. EXISTSNODE(XMLType_instance,Xpath_string)
該函數(shù)用于確定特定的XML節(jié)點(diǎn)的路徑是否存在,返回0表示節(jié)點(diǎn)不存在,返回1表示節(jié)點(diǎn)存在。
示例: SELECT existsnode(value(a),'/root/main/住院號(hào)') data FROM xmltable a;
4. SYS_DBURIGEN({column|attribute})
該函數(shù)用于根據(jù)列或者屬性生成類型為DBUrlType的URL
示例: SELECT sys_dburigen(a.DISPLAYNAME) aa FROM v_dept a WHERE a.DISPLAYNAME='矽肺病醫(yī)院'
5.SYS_XMLAGG(expr[,fmt])
該函數(shù)用于匯總所有XML文檔,并生成一個(gè)XML文檔。
示例: SELECTSYS_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])
該函數(shù)用于根據(jù)數(shù)據(jù)庫表的行和列生成XMLType實(shí)例。
7.XMLAGG(XMLType_instance[ORDER BY sort_list])
該函數(shù)用于匯總多個(gè)XML塊,并生成XML文檔。
示例: select xmlagg(xmlelement("row",
8. XMLFOREST(value_expr1[,value_expr2],...)
該函數(shù)用于返回XML塊
9. XMLELEMENT(identifier[,xml_attribute_clause][,value_expr])
該函數(shù)用于返回XMLType的實(shí)例。其中參數(shù)identifier用于指定元素名,參數(shù)xml_attribute_clause用于指定元素屬性子句,參數(shù)value_expr用于指定元素值。
示例: SELECTxmlelement("row",
xmlcolattval(a.frequency_codeAS "編碼",
a.frequency_nameas "名稱")) xml
from med_frequencydict a
where a.frequency_code = 'BID'
10.XMLCOLATTVAL(value_expr[,value_expr2],...)
該函數(shù)用于生成XML塊,參數(shù)value_expr用于指定列名或者別名作為屬性名。
示例:
11.XMLCONCAT(XMLType_instance1[,XMLType_instance2],...)
該函數(shù)用于連接多個(gè)XMLType實(shí)例,并生成新的XMLType實(shí)例。
示例: selectxmlconcat(xmltype('<row><no>1</no></row>'),
xmltype('<row><no>2</no></row>'),
xmltype('<row><no>3</no></row>'))
fromdual
12.XMLSEQUENCE(xmltype_instance)
該函數(shù)用于返回XMLType實(shí)例中頂級(jí)節(jié)點(diǎn)以下的VARRAY元素。
示例:select extractvalue(column_value,'/row/醫(yī)囑內(nèi)容') 醫(yī)囑內(nèi)容
from table(xmlsequence(extract((select value(a)
fromxmltable a
where rownum= 1),
'/root/detail/row')))
13.UPDATEXML(XMLType_instance,Xpath_string,value_expr)
該函數(shù)用于更新特定XMLType實(shí)例相應(yīng)的節(jié)點(diǎn)路徑的內(nèi)容
示例: selectupdatexml(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)
該函數(shù)用于將XMLType實(shí)例按照XSL樣式進(jìn)行轉(zhuǎn)換,并生成新的XMLType實(shí)例
15.DELETEXML(XMLType_instance,Xpath_string)
該函數(shù)用于刪除特定XMLType實(shí)例相應(yīng)的節(jié)點(diǎn)路徑的內(nèi)容
16.XML轉(zhuǎn)換表
SELECT * FROM XMLTABLE(' $SQ/root/detail/row' PASSING
(select value(a) from xmltable a) AS SQ
COLUMNS 醫(yī)囑ID VARCHAR2(50) PATH '/row/醫(yī)囑ID',
醫(yī)囑內(nèi)容 VARCHAR2(200) PATH '/row/醫(yī)囑內(nèi)容',
頻次 VARCHAR2(200) PATH '/row/頻次',
用法 VARCHAR2(200) PATH '/row/用法' )
order by 醫(yī)囑ID
聯(lián)系客服