当前位置: 首页 > 编程笔记 >

在SAP HANA系统中以XML字符串格式存储数据

上官高畅
2023-03-14
本文向大家介绍在SAP HANA系统中以XML字符串格式存储数据,包括了在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元素。返回值的类型为VARCHAR / NVARCHAR或CLOB / NCLOB,具体取决于为<XML_document>指定的类型。

如果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元素的文本内容。返回值的类型为VARCHAR / NVARCHAR或CLOB / NCLOB,具体取决于为<XML_document>指定的类型。

如果XML元素为空(例如<name> </ name>),则返回空结果。如果找不到XML元素,则该函数返回错误。

仅子XML节点的单个元素支持此功能。例如,您可以使用XMLEXTRACTVALUE来查询下面的XML文档中的<name>和<age>元素,因为它们是子节点的单个元素。但是,您无法查询文档的<parent>或<child>元素,因为这两个元素都包含多个子节点。

<parent>
   <child>
      <name>Tom</name>
      <age>18</age>
   </child>
</parent>
 类似资料:
  • 每当我在这个集合中保存一些数据时,我就声明了一个类LoanDetails和一个包含BigDecimal类型loanAmount的字段 它以字符串形式存储在mongo db数据库中 我试图在loanAmount字段上添加注释

  • 我有一个通过ORM保存到数据库的对象。对象有一个字符串数组,每个对象的数组长度可以不同。我想知道在db中存储字符串数组的标准做法(例如,我是否应该将所有字符串存储在一个字段中作为csv等)?

  • 我想执行将单个字符串转换为矩阵或表格形式的拆分逻辑。我有下面的弦结构。 每次钉钉结构都是一样的,但产品应该是可变的(意味着产品可以增加或减少) 我期待的输出如下 这意味着我需要将数据存储在单独的ArrayList中,如: Sr.ArrayList包含1和2,Particulars ArrayList包含Knife和Pirates Cap等等。 我尝试了几种方法但都没有成功 首先我想我必须使用这个链

  • 问题内容: 我需要找出如何将数字格式化为字符串。我的代码在这里: 小时和分钟是整数,而秒是浮点数。str()函数会将所有这些数字转换为十分之几(0.1)。因此,而不是我的字符串输出“ 5:30:59.07 pm”,它将显示类似“ 5.0:30.0:59.1 pm”的内容。 最重要的是,我需要为我执行什么库/函数? 问题答案: 从Python 3.6开始,可以使用格式化的字符串文字或 f-strin

  • 问题内容: 在python中,我可以使用os或subprocess运行一些系统命令。问题是我无法以字符串形式获取输出。例如: 我有一个没有功能check_out的较旧版本的子流程,并且我希望有一个不需要更新该模块的解决方案,因为我的代码将在没有完全管理员权限的服务器上运行。 这个问题似乎微不足道,但我找不到微不足道的解决方案 问题答案: 用途: 执行此操作的较新方法(> python 2.6)是使

  • 问题内容: 在Java程序中,我具有以下字符串: 每行是一个单独的过程。我想在每一行中使用该运算符计算出两个数字。但是我不想使用任何类型的条件系统来检测每行中的哪个运算符。 实际上,我的主要问题是在没有条件的情况下检测操作员的类型。我不想使用Javascript引擎。我想知道是否有任何有效和标准的方法。 问题答案: J. Selva回应的另一个解决方案: 改进之处 单班 静态块 更好的抽象 导入j