Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL列中的XML:无法调用nvarchar上的方法(最大值)_Sql_Xml - Fatal编程技术网

SQL列中的XML:无法调用nvarchar上的方法(最大值)

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

我有一个sql查询,它在我的列名上显示了一个错误“Cannotcallmethodsonnvarchar(max)”


问题似乎集中在[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]