我有一个数据库,该表的列之一是“图像”类型。我把那里编码的PDF文件。
我的目标是在Java应用程序控制台的INSERT STATEMENT中打印表中的所有数据(以便与Management Studio中的“ Generate Script ...”进行相同的操作)。但是,由于我的“图像”列是二进制的,因此我不知道如何对其进行编码以放入INSERT状态,因此此状态记录将是可执行的。
答案 0 :(得分:0)
您可以使用convert SQL函数将二进制(varbinary)转换为字符串(varchar),以便将二进制数据与字符串(以十六进制表示)进行转换。
convert函数具有参数样式,该样式指示字符串是否以0x字符开头。在这些示例中,我使用值2(无0x字符)。
从二进制到字符串:
select convert(varchar(max), my_image, 2) as my_string_representation
from my_table
从字符串回到二进制:
select convert(varbinary(max), my_string_representation, 2) as my_binary_image
from my_table
因此,为了构建纯文本插入语句,让我们假设 convert(varchar(max),my_image,2)已在特定位置返回了'49747A696B ...'字符串记录,那么该记录的插入语句应为:
insert into my_table (my_id, my_image)
values (25, convert(varbinary(max), '49747A696B...', 2))