我有一些C#代码(SQLCLR),它将一个XML文件从本地机器读取到一个流中,并以SQLXML的形式返回给SQLXML:
C#代码
Stream str = File.OpenRead(xmlFilePath);
sqlXMLToReturn = new SqlXml(str);来自Server 2014的SQL调用:
DECLARE @ResultForPos xml
EXEC @ResultForPos = spGetXmlForFile
SELECT @ResultForPos当我从Visual 2015中的Server对象资源管理器调试上述SQL脚本时,C#代码中的断点就会被击中。在C#代码中没有出现异常。但是,在运行该脚本后,我将在Server中得到以下错误。
Msg 206,16级,状态2,过程spWcfCall,第43行 操作数类型冲突: int与xml不兼容
我做错了什么?我是否必须执行sqlXMLToReturn.Value并返回一个字符串而不是SQLXML。
发布于 2017-04-11 15:22:40
存储过程,无论是纯they还是SQLCLR,总是返回INT / SqlInt32。如果要传回XML / SqlXml,则需要使用OUTPUT / out / ref参数。
最后,语法应该类似于以下内容:
EXEC dbo.spGetXmlForFile @OutParamName = @ResultForPos OUTPUT;https://stackoverflow.com/questions/43349864
复制相似问题