Varbinary提取到文件

时间:2014-07-25 16:59:17

标签: sql-server database

我试图将varbinary数据提取为原始格式并将其保存到文件中。这是我到目前为止所没有的,并没有显示任何错误,但它没有创建文件。

DECLARE @DocumentName varchar(500) = 'C:\' + @LicenseNumber + '\' + @FileType 
    + '\' + convert(nvarchar(MAX), @FileDate, 21) + ' ' + @LicenseNumber 
    + ' ' + @FileTypeCode + ' ' + @Quarter + @FileExtension 

EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken, 'Type', 1
EXEC sp_OAMethod @ObjectToken, 'Open'               
EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @DocumentData         
EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @DocumentName, 2
EXEC sp_OAMethod @ObjectToken, 'Close'              
EXEC sp_OADestroy @ObjectToken

这里有什么不对,任何人都可以看到吗?

2 个答案:

答案 0 :(得分:0)

我认为破坏此脚本的唯一原因是完整路径大于500个字符,并在分配给@DocumentName时被截断。

答案 1 :(得分:0)

结果是DECLARE @DocumentName varchar(500)='C:\','C:\'部分需要位于运行脚本的服务器上。一旦我将其更改为服务器名称而不是c:\,它工作正常。有时它会把一整​​天搞得一团糟。 : - )