首页 新闻 会员 周边 捐助

sql中文件路径转二进制数据

0
悬赏园豆:20 [已解决问题] 解决于 2020-05-14 15:24

我的sql表中有一个字段,存了本地图片文件的绝对路径;我现在需要根据这个文件路径将文件转换成image类型或varbinary类型;试问,在只通过sql脚本的情况下,如何实现?

龙行天涯的主页 龙行天涯 | 小虾三级 | 园豆:1794
提问于:2020-05-14 14:53
< >
分享
最佳答案
1

你是需要导出还是存字段?
一、存字段
CREATE TABLE myTable(Document varbinary(max))
INSERT INTO myTable(Document)
SELECT * FROM
OPENROWSET(BULK N'C:\Image1.jpg', SINGLE_BLOB)

二:SQL server 脚本导出图片
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)

DECLARE IMGPATH CURSOR FAST_FORWARD FOR
--替换为你的查询语句
SELECT job_data,job_name from TBL_TIMER_JOB_DETAILS
OPEN IMGPATH

FETCH NEXT FROM IMGPATH INTO @SOURCEPATH, @image_ID

WHILE @@FETCH_STATUS = 0
BEGIN
--替换为你的路径
SET @DESTPATH = 'c:' + @image_ID + '.obj'
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

收获园豆:20
熊泽-学习中的苦与乐 | 老鸟四级 |园豆:2272 | 2020-05-14 14:59

感谢,搞点了。

龙行天涯 | 园豆:1794 (小虾三级) | 2020-05-14 15:24

@龙行天涯: 嗯嗯,不客气_

熊泽-学习中的苦与乐 | 园豆:2272 (老鸟四级) | 2020-05-14 15:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册