我的sql表中有一个字段,存了本地图片文件的绝对路径;我现在需要根据这个文件路径将文件转换成image类型或varbinary类型;试问,在只通过sql脚本的情况下,如何实现?
你是需要导出还是存字段?
一、存字段
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
感谢,搞点了。
@龙行天涯: 嗯嗯,不客气_