EXTRACT
📄字数 639
👁️阅读量 加载中...
功能描述
返回某个标签下的所有标签。
XML数据类型的详细信息请参见《SQL语法参考指南》的XML数据类型章节。
语法格式
sql
EXTRACT(XMLdata,xpath)输入参数
XMLdata:XML类型数据。xpath:查找路径。
输出结果
VARCHAR类型。第一个参数为NULL,输出结果为NULL;如果第二个参数为NULL,会报XPATH不能为空的错误,两个参数同时为NULL,输出结果为NULL。
执行类型
| TYPE | VALUE | 说明 |
|---|---|---|
| NATIVE | 0 | 函数只能在本地计算 |
| VOLATI | 0 | 函数的每次计算值不同 |
| STABLE | 0 | 函数的每次计算值相同 |
| COMPUTE | 0 | 函数支持预计算取值 |
| NOT_CONST | 0 | 函数不支持转常数 |
| HAVE_DEF | 0 | 函数参数有默认值 |
示例
sql
SQL> CREATE TABLE test_extract(id INT,xml_col XML,insert_time DATE);
SQL> insert into test_extract values(1, '<tag><a>AA<b/>aa</a><a lang="en">ALPHA<b lang="zh"/>alpha</a><x lang="en">XX<y lang="zh">YY<z/>yy</y></x></tag>', '2020-01-01');
SQL> insert into test_extract values(2, '<country>china<city capital="true">beijing</city><city capital="false">shanghai</city></country>', '2020-02-01');
SQL> SELECT EXTRACT(t.xml_col,'/country/city[@capital="true"]') FROM test_extract t WHERE t.id = 2;
+-------------------------------------+
| EXPR1 |
+-------------------------------------+
| <city capital="true">beijing</city> |
+-------------------------------------+
SQL> SELECT EXTRACT(t.xml_col,'data(//@lang)') FROM test_extract t WHERE t.id = 1;
+----------+
| EXPR1 |
+----------+
| enzhenzh |
+----------+