簡體   English   中英

SQL Server XQuery語法錯誤

[英]SQL Server XQuery Syntax Error

我正在使用Serilog Sinks for SQLServer,並使用鏈接遵循DB模式和XQuery語法。 但是,當我在Navicat中運行以下查詢時,出現錯誤。

這是查詢:

SELECT 
Properties.value('(/properties/property[@key="contact"]/structure[@type="Contact"]/property[@key="ContactId"])[1]', 'nvarchar(max)') AS ContactId,
Properties.value('(/properties/property[@key="contact"]/structure[@type="Contact"]/property[@key="FirstName"])[1]', 'nvarchar(50)') AS FirstName,
Properties.value('(/properties/property[@key="contact"]/structure[@type="Contact"]/property[@key="Surname"])[1]', 'nvarchar(100)') AS Surname,
Properties.value('(/properties/property[@key="cacheKey"])[1]', 'nvarchar(100)') AS CacheKey,
*
FROM Log
WHERE MessageTemplate = 'Contact {@contact} added to cache with key {@cacheKey}'
    AND Properties.value('(/properties/property[@key="contact"]/structure[@type="Contact"]/property[@key="ContactId"])[1]', 'nvarchar(max)') = 'f7d10f53-4c11-44f4-8dce-d0e0e22cb6ab' 

這是錯誤聲明:

[Err] 42000-[SQL Server]找不到列“屬性”或用戶定義的函數或聚合“ Properties.value”,或者名稱不明確。

任何解決方案或解決方法將不勝感激。

如果“日志”表具有“屬性”列且其格式為XML,則將運行查詢。

因此,您必須更改列的類型或在查詢中將其轉換為XML。

第二種方法看起來像cast(Properties as xml).value ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM