我在MySQL数据库中有一个字段被定义为longblob
,我在其中上传pdf/word文件等。但是,我从SQL Server数据库访问此数据库,并且数据是从链接的服务器和视图访问的。
问题问题是,数据需要由另一个应用程序导入,但文档文件的数据类型显示为图像,这导致了问题。
我试过什么
我首先尝试查看是否将longblob
更改为varbinary
以在SQL Server中获得varbinary(max)
数据类型。这并没有奏效,我仍然得到了图像。
然后我尝试制作一个视图来转换数据。我尝试了CAST(fileContent as varchar(max))
,得到了错误:
不允许从数据类型image显式转换为nvarchar(max(。
然后我按照建议尝试了cast(cast(fileContent as varbinary(max)) as varchar(max)) as fileContent
,但我又收到了一大堆胡言乱语。
%PDF-1.4 %âãÏÓ 3 0 obj <</Type /Page /Parent 1 0 R /MediaBox [0 0 595.280 841.890] /TrimBox [0.000 0.000 595.280 841.890] /Resources 2 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Contents 4 0 R>> endobj 4 0 obj <</Filter /FlateDecode /Length 521>> stream xœµRËnÛ0Ü3¿b-ÐÐ|ŠRn ) 4¥==¨¶âºu’F1
而不是像0x255044462D312E
,
如果我能在转换二进制数据(声称这是nvarchar(max)
的图像(方面得到一些帮助,我将不胜感激
declare @t table(theimage image)
insert into @t(theimage)
values(0x3a26);
select convert(varchar(max), cast(theimage as varbinary(max)), 1) as theimagebinaryaschar
from @t;
declare @theimageaschar varchar(max) = '0x3a26';
select convert(varbinary(max), @theimageaschar, 1) as theimageasbinary;