我正在尝试将.pdf
文件的内容放入varbinary(max)
类型的列中。
我怎么能做到这一点?我使用了convert
和cast
,但似乎没有效果。
我在考虑定义var1 varbinary(max)
并将其设置为文件的内容,但这也失败了。
declare @var1 varbinary(max)
set @var1 'c:\xxx\inp.pdf' ???
然后:
insert into t1(xdata) values ( @var1);
或许我可以使用insert from file,不确定这可能没有BULK吗?
感谢您的帮助,我也不能在单个qoutes中使用.pdf
文件的内容,它会将其视为varchar
- (
谢谢大家的帮助。 戴
答案 0 :(得分:6)
试试这个:
DECLARE @pdf VARBINARY(MAX)
SELECT @pdf = BulkColumn
FROM OPENROWSET(BULK N'C:\Users\......\YourFile.pdf', SINGLE_BLOB) AS Document;
SELECT @pdf, DATALENGTH(@pdf)
INSERT INTO dbo.YourTable(PDFContents) VALUES(@Pdf)
GO
或直接:
INSERT INTO dbo.t1(xdata)
SELECT BulkColumn
FROM OPENROWSET(BULK N'C:\Users\......\YourFile.pdf', SINGLE_BLOB)
OPENROWSET
功能的详细信息可以在MSDN's SQL Server Books Online上一如既往地找到。
答案 1 :(得分:0)
您需要使用撰写文档的blob column