\n在 SAP HANA 系统中以 XML 字符串格式存储数据
在较旧的 SAP HANA 版本中,没有提供 XML 函数。HANA 2.0 提供了这两个函数——XMLEXTRACT 和 XMLEXTRACTVALUE,用于提取 SAP HANA 中的 XML 字符串。
XMLEXTRACT 的用法
XMLEXTRACT(<XML_document>, <XPath_query> [,<NamespaceDeclarations>])
使用方法的语法:
<XML_document>
指定类型为 CLOB、NCLOB、VARCHAR 或 NVARCHAR 的 XML 文档。
<XPath_query>
指定类型为 VARCHAR 或 NVARCHAR 的 XPath 表达式。
<NamespaceDeclarations>
指定类型为 VARCHAR 或 NVARCHAR 的命名空间声明。
描述
返回匹配的 XML 元素。返回值的类型取决于<XML_document>的类型,可以是 VARCHAR/NVARCHAR 或 CLOB/NCLOB。
如果 XML 元素为空(例如,<name></name>),则返回空结果。如果找不到 XML 元素,则函数返回错误。
SELECT XMLEXTRACT( '<doc xmlns:ns1="http://namespace1.sap.com" xmlns:ns2="http://namespace2.sap.com"> <ns1:item><ns1:id>1</ns1:id><ns1:name>Box</ns1:name></ns1:item> <ns1:item><ns1:id>2</ns1:id><ns1:name>Jar</ns1:name></ns1:item> <ns2:item><ns2:id>3</ns2:id><ns2:name>Table</ns2:name></ns2:item> </doc>', '/doc/ns1:item[2]/ns1:name', 'xmlns:ns1="http://namespace1.sap.com" xmlns:ns2="http://namespace2.sap.com"' ) FROM DUMMY;
XMLEXTRACTVALUE 的用法
XMLEXTRACTVALUE(<XML_document>, <XPath_query> [,<NamespaceDeclarations>]) <XML_document>
指定类型为 CLOB、NCLOB、VARCHAR 或 NVARCHAR 的 XML 文档。
<XPath_query>
指定类型为 VARCHAR 或 NVARCHAR 的 XPath 表达式。
<NamespaceDeclarations>
指定类型为 VARCHAR 或 NVARCHAR 的命名空间声明。
描述
返回匹配的 XML 元素的文本内容。返回值的类型取决于<XML_document>的类型,可以是 VARCHAR/NVARCHAR 或 CLOB/NCLOB。
如果 XML 元素为空(例如,<name></name>),则返回空结果。如果找不到 XML 元素,则函数返回错误。
此函数仅支持子 XML 节点的单个元素。例如,您可以使用 XMLEXTRACTVALUE 查询下面 XML 文档中的<name>和<age>元素,因为它们是子节点的单个元素。但是,您不能查询文档的<parent>或<child>元素,因为这两个元素都包含多个子节点。
<parent> <child> <name>Tom</name> <age>18</age> </child> </parent>
广告