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

更新於:2020年3月12日

475 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告