我有一个sql查询,它在我的列名上显示了一个错误:“cannot call method on 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上,但我尝试了一些方法,包括更改列类型,但最终还是失败了。如果有任何建议,我们将非常感谢。
发布于 2013-11-25 18:22:34
谢谢你们的回复。事实证明,我把它搞得过于复杂了,因为我无法访问SQL表中的名称空间。不过,我还是从将字段类型更改为XML开始,所以感谢Andomar。我的解决方案如下:
SELECT [LEARNER_COURSE_XML_TEST].[XML_EX].query('data(sco/cmicore/total_time)') AS  TimeTaken FROM [LEARNER_COURSE_XML_TEST] 正如我所希望的那样,这提取了我的总时间。再次感谢。
发布于 2012-06-08 18:00:19
听起来像是nvarchar(max)类型的XML_EX。尝试将其更改为xml。
您也可以在查询中强制转换它,如下所示:
select  cast(lcxt.XML_EX as xml).query(...)
from    learner_course_xml_test lcxthttps://stackoverflow.com/questions/10946600
复制相似问题