sql server 使用sql语句导出二进制文件到本地磁盘

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO

DECLARE @SOURCEPATH VARBINARY(MAX),
@DESTPATH VARCHAR(MAX),
@ObjectToken INT,
@image_ID VARCHAR(MAX),
@ExamID varchar(50),
@DataBaseName varchar(50)

DECLARE IMGPATH CURSOR FAST_FORWARD FOR

--********************************************************************************************************************************--
--替换为你的查询语句

SELECT 文件内容,文件名称 from 表

--********************************************************************************************************************************--

OPEN IMGPATH

FETCH NEXT FROM IMGPATH INTO @SOURCEPATH, @image_ID

WHILE @@FETCH_STATUS = 0
BEGIN
--替换为你的路径
SET @DESTPATH = 'D:\' + @image_ID + '.jpg'
print(@image_ID)
print(@DESTPATH)

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

FETCH NEXT FROM IMGPATH INTO @SOURCEPATH, @image_ID
END

CLOSE IMGPATH
DEALLOCATE IMGPATH
print('导出完成')

猜你喜欢

转载自www.cnblogs.com/dcrenl/p/12426864.html