要复制的LOB数据的长度超出了配置的最大值65536

报错:


原因分析:

SQL SERVER报错信息已经告诉我们,与参数“max text repl size”有关,对于该参数,官方文档解释如下:


The max text repl size option specifies the maximum size (in bytes) of text, ntext, varchar(max), nvarchar(max), 

varbinary(max), xml, and image data that can be added to a replicated column or captured column in a single 

INSERT, UPDATE, WRITETEXT, or UPDATETEXT statement. The default value is 65536 bytes. A value of -1 indicates 

that there is no size limit, other than the limit imposed by the data type.


翻译为中文:max text repl size (做大文本复制尺寸) 选项是指在执行INSERT, UPDATE, WRITETEXT,或者 UPDATETEXT 

的时候,对于数据类型text, ntext, varchar(max), nvarchar(max), varbinary(max), xml,  image 可以被添加到复制列或者

捕获列的最大长度。默认值是65536,如果设置为”-1”,则长度无限制。


 


简而言之,当参数max text repl size为65536时,如果发布数据库(主库)在执行INSERT, UPDATE, WRITETEXT, 

UPDATETEXT操作时,列的字符长度超过了65536,就会产生复制操作失败,同时主库的INSERT, UPDATE, 

WRITETEXT, UPDATETEXT也会失败。


这个表开启了CDC,所以在复制时候捕获列最大长度不能超过65536。


解决办法:

1、设置max text repl size为-1。

2、设置 max text repl size为一个较大数值。


选择第二种解决方案:


问题解决。



请使用浏览器的分享功能分享到微信等