1.场景

用户使用的SAS软件通过ODBC连接sqlserver,在跑批过程中出现 "将截断字符串或二进制数据"的报错。每次都是跑批正常的,用户怀疑是我们打了一个修复ODBC的windows补丁。

2.分析SAS软件跑批的日志。

发现有两个SQL语句出现将字段截断的报错。后来查询 MERGE INTO 语法中,被更新的表的字段长度确实不够,更新的SQL语句中值的长度大于被更新的表,所以报了这个错误。

3.正常的SSMS字段超长的报错如下。

--SSMS;字段超长。
消息 2628,级别 16,状态 1,第 17 行
字符串或二进制数据将在表“test.dbo.test2”,列“name”中被截断。截断值:“学双栖其妻”。

4.总结

由此可见,如果出现"将截断字符串或二进制数据"关键字时一般都是字段超长,我们需要从具体的更新语句中去排查问题。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐