我尝试批量插入不同的文件。
当我编码时:
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似乎是空的。我找不到我错的地方。
感谢您的帮助。
答案 0 :(得分: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的值,而不是相反。