我正在尝试将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?
谢谢
答案 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