因为业务需求我们需要报nvarchar改为max,如下:
ALTER TABLE dbo.bcrf apply audit n ALTER COLUMN APPROVE OPINION nvarchar(MAX)
NULL;
但是使用mssql 订阅发布到备库后发现该参数会变为非max值,因此需要确认问题有两个:
- 在mssql看nvarchar值与在第三方工具dbeaver看到的显示不一致
- mssql订阅发布模式是否会改变nvarchar的值
这边做了以下测试,nvarchar已确实修改为MAX,然后启动订阅发布后,应用会出现以下报错:
### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 要复制的 LOB 数据的长度(488928)超出了配置的最大值 65536。请使用存储过程 sp_configure 为 max text repl size 选项(默认值为 65536)增加配置的最大值。配置值为 -1 表示无限制,其他值表示由数据类型施加限制。 ### The error may involve com.ylink.hwss.bcrf.modules.report.dao.BcrfBankFileDao.insert-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO bcrf_bank_file ( FILE_NO, FILE_CONT, INSERT_TIME, FILE_NAME, FILE_FMT, FILE_LANG ) VALUES ( ?, ?, ?, ?, ?, ? ) ### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 要复制的 LOB 数据的长度(488928)超出了配置的最大值 65536。请使用存储过程 sp_configure 为 max text repl size 选项(默认值为 65536)增加配置的最大值。配置值为 -1 表示无限制,其他值表示由数据类型施加限制。 ; uncategorized SQLException for SQL []; SQL state [S0001]; error code [7139]; 要复制的 LOB 数据的长度(488928)超出了配置的最大值 65536。请使用存储过程 sp_configure 为 max text repl size 选项(默认值为 65536)增加配置的最大值。配置值为 -1 表示无限制,其他值表示由数据类型施加限制。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 要复制的 LOB 数据的长度(488928)超出了配置的最大值 65536。请使用存储过程 sp_configure 为 max text repl size 选项(默认值为 65536)增加配置的最大值。配置值为 -1 表示无限制,其他值表示由数据类型施加限制。