是否可以将数据存储在sap hana中的xml字符串中。有人能给我举例说明这是如何完成的。基本上试图在节点中存储列的子串,并将结果连接到select语句中的另一个表。互联网上没有太多的材料,所以任何帮助将不胜感激。谢谢。将数据存储在表中的xml字符串中
1
A
回答
1
与HANA 2个XML功能(XMLEXTRACT
和XMLEXTRACTVALUE
)开始可用:https://www.youtube.com/watch?v=tMTn0i0fpT0
HANA2之前有没有可用的特定的XML功能。
2
从HANA 2.0开始,解析包含XML的列值的支持非常有限,请参阅函数XMLEXTRACT和XMLEXTRACTVALUE。
下面是一个以某种方式从XML文档中动态提取值并将它们连接到其他表的示例。 但是警告:这个例子只有在你确切地知道每个文档包含多少人物的情况下才有效。我期望在访问不存在的项目时获得NULL,但是我收到错误。所以,也许有人可以改进,或者目前功能有限。
drop table "XMLExample";
create column table "XMLExample"
("DocID" NVARCHAR(10),
"Doc" nvarchar(5000));
insert into "XMLExample" ("DocID", "Doc") values
('1',
'<Doc>
<Item><ID>1</ID><Prod>A</Prod><Quantity>10</Quantity></Item>
<Item><ID>2</ID><Prod>B</Prod><Quantity>12</Quantity></Item>
</Doc>'
);
insert into "XMLExample" ("DocID", "Doc") values
('2',
'<Doc>
<Item><ID>1</ID><Prod>A</Prod><Quantity>1</Quantity></Item>
<Item><ID>2</ID><Prod>C</Prod><Quantity>3</Quantity></Item>
</Doc>'
);
drop table "Products";
create column table "Products"
("ProdID" NVARCHAR(10),
"Price" DECIMAL(10,2));
insert into "Products" ("ProdID", "Price") values ('A', '13.54');
insert into "Products" ("ProdID", "Price") values ('B', '3.00');
insert into "Products" ("ProdID", "Price") values ('C', '5.30');
select "Items".*, "Price", "Price" * "Quantity" "Total" from
(
SELECT "DocID",
XMLEXTRACTVALUE(
"XMLExample"."Doc",
'/Doc/Item[' || "SERIES"."ELEMENT_NUMBER" || ']/ID'
) "ItemID",
XMLEXTRACTVALUE(
"XMLExample"."Doc",
'/Doc/Item[' || "SERIES"."ELEMENT_NUMBER" || ']/Prod'
) "ProdID",
XMLEXTRACTVALUE(
"XMLExample"."Doc",
'/Doc/Item[' || "SERIES"."ELEMENT_NUMBER" || ']/Quantity'
) "Quantity"
FROM "XMLExample",
SERIES_GENERATE_INTEGER(1, 0, 2) "SERIES" -- replace 2 with your max. number of Items
) "Items"
inner join "Products"
on "Products"."ProdID" = "Items"."ProdID"
Order by "DocID", "ItemID"
相关问题
- 1. 基于存储在SQL Server XML数据中的字符串构建字符串
- 2. 将字符串的地址存储在字符串数组中
- 3. 如何在GAE数据存储中存储大西萨的xml字符串
- 4. 将字符串存储到数组中?
- 5. 如何将字符串中存储的数据转换为字符串数组
- 6. 用于在表中存储字符串的C#数据类型
- 7. 在字符串中存储字符串
- 8. 将数据存储到字符串或数据库中
- 9. 在数据库中获取表并将其存储在字符串中
- 10. 将XML存储为字符串
- 11. 如何在谷歌云数据存储中存储字符串[] []
- 12. 存储XML字符串
- 13. 存储XML为字符串
- 14. 将长字符串存储在数据库中是否好?
- 15. 在Sencha Touch中将存储数据编码为JSON字符串
- 16. C++ EnumWindows,将列表存储在字符串数组中
- 17. 在Oracle数据库表中存储字符串
- 18. 将列表值存储在c中的字符串中#
- 19. 在哪里存储静态字符串数据的XML格式?
- 20. 将base64数据存储在XML中?
- 21. 将枚举存储为数据库中的字符串
- 22. 如何将存储在字符串中的数字值相加?
- 23. 在数据库中存储数据(字符串)
- 24. 字符串数据存储在哪里?
- 25. 使用libxml2在XML节点中存储字符串以外的数据类型
- 26. 如何减少用于存储在数据库中的XML字符串长度?
- 27. 将django databse textfield的结果存储在字符串列表中
- 28. 如何将字符串文字存储在内存中的c + +?
- 29. 将提取的字符存储在字符串向量中
- 30. 在数组中存储字符串并拆分字符串
我看到拉尔斯刚刚纠正了他的答案,而我写了我的答案(很难想象从拉尔斯找到了错误的答案,因此;-))。我会留下我的答案,因为也许有人对这个例子感兴趣。 –