sql - 使用 SQL 将 pdf 文件插入 SQL 表

标签 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

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

谢谢

最佳答案

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

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

关于sql - 使用 SQL 将 pdf 文件插入 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18411106/

相关文章:

c# - 将 SQL Server 存储过程的值输出到变量中

c++ - 如何在 ARM 的 Windows CE 应用程序上连接到 SQL 数据库

sql-server - 在 SQL Server 中添加两个列值来填充第三列,这可以在没有触发器/存储过程的情况下完成吗?

sql - 如何根据范围从 1 到 69 的数字列表创建包含 5 个数字排列的列表?

sql - SELECT 查询中常量的含义是什么?

sql - 在 SQLite 中声明变量并使用它

sql-server - SQL Server SSIS 没有当前行

sql - 如何在 SQL Server 中获得 float 的精确字符表示?

sql-server - SQL Server 中 ADSI 链接的可用字段

SQL 更新(德尔福)