SQL列中的XML:无法调用nvarchar上的方法(最大值)
我有一个sql查询,它在我的列名上显示了一个错误“Cannotcallmethodsonnvarchar(max)”SQL列中的XML:无法调用nvarchar上的方法(最大值),sql,xml,Sql,Xml,我有一个sql查询,它在我的列名上显示了一个错误“Cannotcallmethodsonnvarchar(max)” 问题似乎集中在[XML_EX].value上,但我尝试了一些事情,包括更改列类型,但最终还是失败了。任何指针都将不胜感激。听起来像XML\u EX是nvarchar(max)类型。尝试将其更改为xml 您还可以在查询中强制转换它,如下所示: select cast(lcxt.XML_EX as xml).query(...) from learner_course_xml
问题似乎集中在[XML_EX].value上,但我尝试了一些事情,包括更改列类型,但最终还是失败了。任何指针都将不胜感激。听起来像
XML\u 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]
这提取了我希望的总时间。再次感谢。
CAST
必须包装整个列引用,而不仅仅是列名(即lcxt.
应该在里面)@Damien\u不信者:显然是对的,请随意编辑;)
SELECT [LEARNER_COURSE_XML_TEST].[XML_EX].query('data(sco/cmicore/total_time)') AS TimeTaken FROM [LEARNER_COURSE_XML_TEST]