ITPub博客

首页 > 数据库 > SQL Server > 要复制的LOB数据的长度超出了配置的最大值65536

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

原创 SQL Server 作者:ywxj_001 时间:2021-07-28 19:23:00 1 删除 编辑

报错:


原因分析:

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为一个较大数值。


选择第二种解决方案:


问题解决。



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22996654/viewspace-2783913/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
在零售、金融、互联网行业从事数据库相关工作10余年,有丰富的数据库管理和架构的相关经验。 涉及SQLServer、Oracle、MySQL、PostgreSQL等多种数据库。 目前在一家互联网公司担任数据库负责人。 负责整个集团数据库的架构设计和管理工作。

注册时间:2010-01-19

  • 博文量
    197
  • 访问量
    276342