Maximizer SQL数据库OLE编码邮件BLOB内容导出问题求助
从Maximizer数据库导出OLE编码的邮件BLOB数据问题
我正尝试将Maximizer数据库中某列的BLOB数据导出为文件,该列由Maximizer Outlook插件保存,类型为VARCHAR(MAX),数据以OLE编码存储。目前能正常导出数据库其他内容及该列中的PDF、DOC文件,但邮件内容导出遇到以下问题:
- 直接将BLOB写入
.msg文件无效 - 写入HTML文件仅能查看邮件内容,无法看到附件
- 尝试过
php_mailparse解析、SQL Server查询导出、C#提取,均未成功
以下是我使用的SQL代码:
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'Ole Automation Procedures', 1; RECONFIGURE; DECLARE @outPutPath varchar(50) = 'C:\export' , @i bigint , @init int , @data varbinary(max) , @fPath varchar(max) , @folderPath varchar(max) DECLARE @Doctable TABLE (id int identity(1,1), [Data_Machine_Id] varchar(100) , [Sequence_Number] varchar(100), [TextCol] varBinary(max) ) INSERT INTO @Doctable([Data_Machine_Id] ,[TextCol]) Select [Data_Machine_Id],[TextCol] FROM [dbo].[AMGR_Letters_Tbl] WHERE [Client_Id] = '160505111841583611250C' AND [Sequence_Number] = '329002'; SELECT @i = COUNT(1) FROM @Doctable WHILE @i >= 1 BEGIN SELECT @data = [TextCol], @fPath = @outPutPath + '\' + '\' + 'test.msg', @folderPath = @outPutPath + '\' FROM @Doctable WHERE id = @i --Create folder first EXEC sp_OACreate 'ADODB.Stream', @init OUTPUT; -- An instace created EXEC sp_OASetProperty @init, 'Type', 1; EXEC sp_OAMethod @init, 'Open'; -- Calling a method EXEC sp_OAMethod @init, 'Write', NULL, @data; -- Calling a method EXEC sp_OAMethod @init, 'SaveToFile', NULL, @fPath, 2; -- Calling a method EXEC sp_OAMethod @init, 'Close'; -- Calling a method EXEC sp_OADestroy @init; -- Closed the resources print 'Document Generated at - '+ @fPath --Reset the variables for next use SELECT @data = NULL , @init = NULL , @fPath = NULL , @folderPath = NULL SET @i -= 1 END
相关截图:
- 十六进制数据截图
- SSV数据截图
内容的提问来源于stack exchange,提问作者user24353131
相关产品推荐
相关产品推荐

