Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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 server 在Xml解析中将nvarchar值“”转换为数据类型int时,转换失败_Sql Server_Xml Parsing - Fatal编程技术网

Sql server 在Xml解析中将nvarchar值“”转换为数据类型int时,转换失败

Sql server 在Xml解析中将nvarchar值“”转换为数据类型int时,转换失败,sql-server,xml-parsing,Sql Server,Xml Parsing,我从文件中获取xml,因此,如果此处节点的值为80,则在新行中,在使用上述查询选择xml时,我得到一个错误,如: Msg 245,16级,状态1,第4行 转换nvarchar值时转换失败' 80'到数据类型int 但是如果xml是在同一行中声明的,比如declare@xml='80' 它会很好用的。我怎样才能解决这个问题。任何人请帮助我继续尝试使用该功能: DECLARE @xml xml ='<Root><Child><Number> 80</Numb

我从文件中获取xml,因此,如果此处节点的值为80,则在新行中,在使用上述查询选择xml时,我得到一个错误,如:

Msg 245,16级,状态1,第4行 转换nvarchar值时转换失败' 80'到数据类型int

但是如果xml是在同一行中声明的,比如declare@xml='80'

它会很好用的。我怎样才能解决这个问题。任何人请帮助我继续

尝试使用该功能:

DECLARE @xml xml ='<Root><Child><Number>
80</Number></Child></Root>'

SELECT  c.value('(./Number)[1]', 'int') AS Number  FROM @xml.nodes('Root/Child') T(c)

我试着编辑这个问题,以使格式更好地工作。从你的问题中我知道布局很重要,所以我希望我没有把它搞砸。我还添加了一个SQL Server标记,因为我99.9999%确信这就是您正在使用的。如果其中任何一个错误,请重新编辑您的问题并更正格式和/或使用适当的技术重新标记。+1。另一种方法是在XQuery表达式c.value'/Number[1]中转换为int,转换为xs:int?','int'
DECLARE @xml xml ='<Root><Child><Number>
80</Number></Child></Root>'

SELECT  c.value('number((./Number)[1])', 'int') AS Number
FROM @xml.nodes('Root/Child') T(c)