[解决方案]要复制的 LOB 数据的长度超出了配置的最大值

SQL Server 2005数据库使用过程中,JDBC Driver异常: com.microsoft.sqlserver.jdbc.SQLServerException: 要复制的 LOB 数据的长度(144377)超出了配置的最大值 65536。

 

   查询很多资料,网上提供一种解决办法,希望可行:

  

   经过查找一番资料,发现服务器配置选项里有一项”Max Text Repl Size”(“最大文本复制大小”),它的默认值为65536,可以通过修改这个值解决上面的问题。

通过SELECT * FROM sys.configurations WHERE NAME LIKE '%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设置了在复制中一个UPDATE,INSERT,WRITETEXTUPDATETEXT语句可以添加到复制列的最大数据量为65536Byte(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 '配置选项的名称' '选项值'

 

专注 + 保持追求精益求精的精神 + 完美的心态 == 天才

原文地址:https://www.cnblogs.com/NoRoad/p/2021308.html