我试图将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
这里有什么不对,任何人都可以看到吗?
答案 0 :(得分:0)
我认为破坏此脚本的唯一原因是完整路径大于500个字符,并在分配给@DocumentName时被截断。
答案 1 :(得分:0)
结果是DECLARE @DocumentName varchar(500)='C:\','C:\'部分需要位于运行脚本的服务器上。一旦我将其更改为服务器名称而不是c:\,它工作正常。有时它会把一整天搞得一团糟。 : - )