Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


XMLQUERY

📄字数 742
👁️阅读量 加载中...

功能描述

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

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

语法格式

sql
XMLQUERY(xpath PASSING XML_data RETURNING CONTENT)

输入参数

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

输出结果

CHAR类型。第一个参数为NULL,输出结果为NULL;如果第二个参数为NULL,会报XPATH不能为空的错误,两个参数同时为NULL,输出结果为NULL

示例

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>                         |
+-----------+--------------------------------+