簡體   English   中英

SQL列中的XML:無法在nvarchar(max)上調用方法

[英]XML from SQL column: Cannot call methods on nvarchar(max)

我有一個sql查詢,我的列名稱錯誤,說'無法調用nvarchar(max)上的方法。

      SELECT [LEARNER_COURSE_XML_TEST].[XML_EX].Query('declare namespace
      x="http://tempuri.org/cmi.xsd";] (/x:cmi/x:core/x:time_taken)') 
      AS TimeTaken FROM [LEARNER_COURSE_XML_TEST]

這個問題似乎以[XML_EX] .value為中心,但我嘗試了一些事情,包括更改列類型,但我終於解開了。 任何指針都將非常感激。

聽起來像XML_EX的類型是nvarchar(max) 嘗試將其更改為xml

您也可以在查詢中強制轉換它,如下所示:

select  cast(lcxt.XML_EX as xml).query(...)
from    learner_course_xml_test lcxt

感謝您的回復。 事實證明,由於我無權訪問SQL表中的命名空間,因此我將其復雜化。 然而,我開始將我的字段類型更改為XML,所以感謝Andomar。 我的解決方案如下:

SELECT [LEARNER_COURSE_XML_TEST].[XML_EX].query('data(sco/cmicore/total_time)') AS  TimeTaken FROM [LEARNER_COURSE_XML_TEST] 

這就像我希望的那樣提取我的總時間。 再次感謝。

暫無
暫無

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

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