查找数据类型为 IMAGE 的字段的平均数据长度



我有一个将文档存储为图像数据类型的表。我希望找到表中所有文件的平均大小。我正在运行以下查询

select AVG(DATALENGTH(document)) from DOCUMENT

文档是数据类型图像的字段。我收到以下异常

Arithmetic overflow error converting expression to data type int.

请帮我解决此错误?

您是否尝试过手动将 DATALENGTH(文档) 转换为 int?

AVG(CAST(DATALENGTH(document) as BIGINT))

编辑:由于jpw的建议,将演员阵容更改为BIGINT。

尝试Convert/Cast Image datatype to Varbinary(max) .根据MSDN的说法,Datalength()函数返回图像数据类型的int,其中varbinary(max)返回bigint。

Select Avg( Datalength( Convert(Varbinary(max), document) ) ) 
From DOCUMENT

请阅读 MSDN 的以下说明

ntext、文本和图像数据类型将在将来的版本中删除 的Microsoft SQL Server。避免在新的 开发工作,并计划修改当前使用的应用程序 他们。请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。 固定和可变长度数据类型,用于存储大型非 Unicode 和 Unicode 字符和二进制数据。Unicode 数据使用 UNICODE UCS-2 字符集。

最新更新