将图像转换为nvarchar(最大值)



我在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;

最新更新