Firebird数据库具有20,000字节的BLOB类型,用于存储Blob的SQL Server数据类型是什么?

问题描述

将数据从Firebird数据库迁移到SQL Server。有一个BLOB Binary字段,其值约为20,000个字节,使用OCTET_LENGTH函数进行了测量。

哪种SQL Server数据类型将容纳8000个字节以上?

解决方法

与Firebird BLOB SUB_TYPE BINARY(或BLOB SUB_TYPE 0BLOB,没有显式子类型)最接近的等效项是VARBINARY(MAX)。参见binary and varbinary (Transact-SQL)

varbinary [ ( n | max) ]可变长度的二进制数据。 n可以是 值从1到8,000。 max表示最大存储量 大小为2 ^ 31-1字节。存储大小是实际的长度 输入的数据+ 2个字节。输入的数据可以是0个字节 长度。 varbinary的ANSI SQL同义词是binary varying

这些类型的值的访问方式有所不同(取决于所使用的API)。在Firebird中,BLOB值是行外存储的,并且可以单独访问(尽管某些API会对您隐藏),而-IIRC-在SQL Server中,VARBINARY值是行存储的,API允许您直接访问该值。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...