使用SQL将pdf文件插入SQL表

时间:2013-08-23 20:15:02

标签: sql sql-server

我正在尝试将pdf文件插入到sql表(varbinary列)

create table pdfTest(pdfData varbinary(max))
declare @filePath varchar(100)
set @filePath = 'c:\pdfSample.pdf'
INSERT INTO pdfTest (pdfData) SELECT * FROM OPENROWSET(BULK @filePath, SINGLE_BLOB) AS BLOB

然而这会产生错误

 Incorrect syntax near '@filePath'.

以下任务均无效

 set @filePath = 'c:'\pdfSample.pdf'
 set @filePath = 'c:\\pdfSample.pdf'

但是以下语法有效

 INSERT INTO pdfTest (pdfData) SELECT * FROM OPENROWSET(BULK 'c:\pdfSample.pdf', SINGLE_BLOB) AS BLOB

只是想知道如何在insert语句中使用@filePath?

谢谢

2 个答案:

答案 0 :(得分:2)

我认为这里的变量名称没有得到解决。尝试在动态sql中使用变量名。

 Declare @sql varchar(max)
 Set @sql='INSERT INTO pdfTest (pdfData) SELECT * FROM OPENROWSET(BULK'+ @filePath+', SINGLE_BLOB) AS BLOB'
 exec @sql

答案 1 :(得分:-1)

Declare @sql nvarchar(max)
 Set @sql='INSERT INTO pdfTest (pdfData) SELECT * FROM OPENROWSET(BULK '''+ @filePath+''', SINGLE_BLOB) AS BLOB'
 exec sp_executesql  @sql