我正在尝试获取正确的xpath来查询配置单元表中名为message的列中作为字符串包含的xml数据。xml来自内部系统的日志文件,我需要从数据中提取特定的数据。
为了简化这个过程,我尝试提取第一组数据,以确保具有正确的xmlxpath,但是在创建视图并执行查询之后,得到了空值。
下面是一个数据和配置单元查询的示例,我正在运行它来创建视图,以便从中提取“sessionkey”。
<AddOnlineToTrolley xmlns="http://tempuri.org/">
<accountSession
xmlns:b="http://schemas.datacontract.org/2004/07/ApplicationServices.DataContracts.Common"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<b:SessionKey>d472046f-fa15-4cf5-bbf0-ee35bdde28f4</b:SessionKey>
<b:SessionToken i:nil="true"/>
</accountSession>
<OnlineProducts
xmlns:b="http://schemas.datacontract.org/2004/07/ApplicationServices.DataContracts.Common"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<b:OnlineProducts i:type="b:OnlineProductsCat">
<b:AddToFavourites>true</b:AddToFavourites>
<b:WeekDay>5</b:WeekDay>
<b:ItemCount>1</b:ItemCount>
<b:OrderOffset>0</b:OrderOffset>
<b:FavouriteName>WeeklyPurchase</b:FavouriteName>
<b:FirstOrderNumber>12505</b:FirstOrderNumber>
<b:ProductId>312</b:ProductId>
<b:Method>1</b:Method>
</b:OnlineProducts>
</OnlineProducts>
</AddOnlineToTrolley>
配置单元查询
DROP VIEW AddOnlineToTrolley;
CREATE VIEW AddOnlineToTrolley(SessionKey)
AS SELECT
xpath_string (message, '/AddOnlineToTrolley/accountSession[1]/*[namespace- uri()=\'http://schemas.datacontract.org/2004/07/ApplicationServices.DataContracts.Common\' and local-name()=\'SessionKey\'][1]'/'SessionKey')
FROM onlineproductimport;
Select * from AddOnlineToTrolley;
我还尝试了一些直接查询表的xpath语句,但仍然得到空值
xpath(message, '/*[local-name()=\'AddOnlineToTrolley\']')
最终的目标是创建一个视图,人们可以使用它来查询、挑选和选择上面xml中的数据,但我的优势不是XPath或xml
视图包含以下内容:
会话密钥
在线产品
添加收藏夹
平日
项目计数
订单偏移量
收藏夹名称
第一订单号
产品ID
方法
暂无答案!
目前还没有任何答案,快来回答吧!