提示“要复制的lob数据的长度(77639)超出了配置的最大值65536”解决方法
问题描述:sql server2005,编辑加了一个超大型文章,一提交出错:
错误如上面提示:
错误代码如下:
SQL Server 2005数据库使用过程中,JDBC Driver异常:
...... 要复制的 LOB 数据的长度(456784)超出了配置的最大值 65536。
经过查找一番资料,发现服务器配置选项里有一项 "Max Text Repl Size" (“最大文本复制大小”),它的默认值为65536,可以通过修改这个值解决上面的问题。
通过SELECT*FROMsys.configurationsWHERENAMELIKE'%repl%'
查询得到max text repl size (B)最大值为2147483647,可以结合实际情况设置小于等于这个数值的值。
例如:
EXEC sp_configure 'show advanced options', 1
go
sp_configure 'max text repl size', '6553600'
go
RECONFIGURE
我们可以在 SQL Server Management Studio 中可以看到如下图:
经过上网查资料原因是SQL SERVER设置了在复制中一个UPDATE,INSERT,WRITETEXT和UPDATETEXT语句可以添加到复制列的最大数据量为65536 Byte(64k),对于数据量大于64K的列并不采用自动截取的方式而是不允许插入或者
更新来保证数据的完整性。解决方法如下:
使用max text repl size选项可以重新设定字段text和image数据的大小(单位为字节)。它的缺省值是64K,上限是2G.此选项仅适用于事务复制。快照复制和合并复制将会忽略此选项。该设置将立即生效,无需重新启动服务器。
方法一:
在SQL Server Management Studio配置 max text repl size 选项:
1、在对象资源管理器中,右键单击服务器并选择“属性”。
2、单击“高级”节点。
3、在“杂项”下,将“最大文本复制大小”选项更改为所需的值。
方法二:
利用sp_configure修改max text repl size值;
在查询分析器里运行:sp_configure 'max text repl size','2147483647'
此命令意思重新设置max text repl size值,为2G(即设置image字段存储容量为2G);
说明:
命令格式:
sp_configure '配置选项的名称' '选项值'