1

我尝试批量插入不同的文件。

当我像这样编码时:

SET @xml=( Select * From OPENROWSET(
                BULK  'C:\Data\csvToXml.xml',SINGLE_BLOB)x)

这是工作。

如果我将路径作为参数,例如:

     SET @Path= 'C:\Data\csvToXml.xml'  


SET @SqlStmt= N' Select @xmlDoc=( Select * From OPENROWSET(
                BULK '''+@Path+''' ,SINGLE_BLOB)x)'

     exec sp_executesql @SqlStmt, N'@xmlDoc XML',@xmlDoc        

@xmlDoc 似乎是空的。我找不到我错的地方。

感谢帮助。

4

1 回答 1

0

来这里寻找解决我自己问题的方法,但最终解决了这个问题!

DECLARE @Output int = 0;
DECLARE @params nvarchar(max) = N'@DesiredValue int OUTPUT';
DECLARE @sql_string nvarchar(max) = N'SELECT @DesiredValue = 13';
EXECUTE sp_executesql @sql_string,  @params, @DesiredValue = @Output OUTPUT
SELECT @Output -- yields 13

事实证明,您不仅需要在 @params 参数中传递关键字 OUTPUT,还需要在要检索的变量中传递关键字。“@DesiredValue = @Output OUTPUT”看起来有点奇怪,因为@Output 取的是@DesiredValue 的值,而不是相反。

文档

于 2013-06-06T16:33:02.763 回答