是否可以將數據存儲在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. 從Python中將字符串列表存儲到HDF5數據集
- 6. 將XML保存在數據網格的字符串中
- 7. 將字符串數組存儲在數據庫中
- 8. 將字符串存儲到數組中
- 9. 將字符串存儲到數組中?
- 10. 如何將字符串中存儲的數據轉換爲字符串數組
- 11. 將數據存儲到字符串或數據庫中
- 12. 在字符串中存儲字符串
- 13. 在數據庫中獲取表並將其存儲在字符串中
- 14. 將XML存儲爲字符串
- 15. 如何在谷歌雲數據存儲中存儲字符串[] []
- 16. 存儲XML爲字符串
- 17. 存儲XML字符串
- 18. 在Sencha Touch中將存儲數據編碼爲JSON字符串
- 19. 將長字符串存儲在數據庫中是否好?
- 20. 將字符串存儲在MySQL數據庫中
- 21. C++ EnumWindows,將列表存儲在字符串數組中
- 22. 如何將數組列表項存儲在字符串中
- 23. 如何將sql錶行數存儲在字符串變量中?
- 24. 在MySQL數據庫表中存儲多個字符串
- 25. 在Oracle數據庫表中存儲字符串
- 26. 在數據庫vs列表中存儲字符串
- 27. 在數據庫表中存儲一個斑點字符串
- 28. 如何在JavaScript中將xml存儲爲字符串變量?
- 29. 在Lucene.NET中存儲字符串列表
- 30. 將列表值存儲在c中的字符串中#
我看到拉爾斯剛剛糾正了他的答案,而我寫了我的答案(很難想象從拉爾斯找到了錯誤的答案,因此;-))。我會留下我的答案,因爲也許有人對這個例子感興趣。 –