Skip to content

XMLQUERY

功能描述

xpath表达式查询XML中的元素。

XML数据类型的详细信息请参见《SQL语法参考指南》的XML数据类型章节。

语法格式

XMLQUERY(xpath PASSING XML_data RETURNING CONTENT)

参数说明

  • xpath:查找路径。
  • XML_data:XML类型数据。

函数返回类型

CHAR类型。

示例

sql
-- 存在要查找的数据
SQL> CREATE TABLE person_data (person_id INT,person_data XML);
SQL> INSERT INTO person_data
(person_id, person_data)
VALUES
(1, XMLTYPE('
 <PDRecord>
   <PDName>Daniel Morgan</PDName>
   <PDDOB>12/1/1951</PDDOB>
   <PDEmail>damorgan@u.washington.edu</PDEmail>
 </PDRecord>')
);
SQL> INSERT INTO person_data
(person_id, person_data)
VALUES
(2, XMLTYPE('
 <PDRecord>
   <PDName>Jack Cline</PDName>
   <PDDOB>5/17/1949</PDDOB>
   <PDEmail>damorgan@u.washington.edu</PDEmail>
 </PDRecord>')
);
SQL> INSERT INTO person_data
(person_id, person_data)
VALUES
(3, XMLTYPE('
 <PDRecord>
   <PDName>Caleb Small</PDName>
   <PDDOB>1/1/1960</PDDOB>
   <PDEmail>damorgan@u.washington.edu</PDEmail>
 </PDRecord>')
);

SQL> SELECT person_id, XMLQuery(
'for $i in /PDRecord
 where $i /PDName = "Daniel Morgan"
 order by $i/PDName
 return $i/PDName'
PASSING person_data
RETURNING CONTENT) xmlData
FROM person_data;

PERSON_ID |XMLDATA | 
------------------------------------------------------------------------------
1 |<PDName>Daniel Morgan</PDName> |
2 |NULL |
3 |NULL |