#EXTRACTVALUE

extractvalue
EXTRACTVALUE ( xml_data , xpath , namespace )

EXTRACTVALUE函数根据输入的xpath定位节点并提取该节点的标量值,返回结果必须是单个文本节点、属性或元素,返回类型为VARCHAR。

如果xpath指向的节点是元素,该元素必须存在一个文本节点作为其子节点,否则函数将报错,函数将返回该文本节点值。

如果xpath指向的是具有多个子节点的节点或具有非文本子节点的节点,函数将报错。

xml_data

通用表达式,遵循如下规则:

  • 必须是一个完整的带有根节点的XML文档,数据类型为XMLTYPE。

  • 数据长度不得超过64MB。

  • 当xml_data的值为NULL时,函数返回NULL。

xpath

XML路径表达式,应遵循W3C(World Wide Web Consortium) XPath 1.0规范。

  • 类型必须为字符型,其他类型则报错。

  • xpath的最大Size为65534字节。

  • 当xpath的值为NULL,函数将报错。

namespace

用于指定命名空间,可以有多个,不同命名空间之间可以使用逗号、空格、制表符或换行符进行分割。命名空间格式为xmlns:prefix=href,区分大小写,可缺省prefix,此时为默认命名空间。

  • 遵循W3C(World Wide Web Consortium)的XML命名空间规范。

  • 类型必须为字符型,可以缺省,缺省时默认为NULL。

  • namespace的最大Size为65534字节。

示例(HEAP表)

SELECT extractvalue(xmltype('<root>text</root>'), 'root') res FROM dual;

RES
----------------------------------------------------------------
text
pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流