【SQLServer】[SAS][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]将截断字符串或二进制数据
用户使用的SAS软件通过ODBC连接sqlserver,在跑批过程中出现 "将截断字符串或二进制数据"的报错。每次都是跑批正常的,用户怀疑是我们打了一个修复ODBC的windows补丁。后来查询 MERGE INTO 语法中,被更新的表的字段长度确实不够,更新的SQL语句中值的长度大于被更新的表,所以报了这个错误。由此可见,如果出现"将截断字符串或二进制数据"关键字时一般都是字段超长,我们需要从具
·
1.场景
用户使用的SAS软件通过ODBC连接sqlserver,在跑批过程中出现 "将截断字符串或二进制数据"的报错。每次都是跑批正常的,用户怀疑是我们打了一个修复ODBC的windows补丁。
2.分析SAS软件跑批的日志。
发现有两个SQL语句出现将字段截断的报错。后来查询 MERGE INTO 语法中,被更新的表的字段长度确实不够,更新的SQL语句中值的长度大于被更新的表,所以报了这个错误。
3.正常的SSMS字段超长的报错如下。
--SSMS;字段超长。
消息 2628,级别 16,状态 1,第 17 行
字符串或二进制数据将在表“test.dbo.test2”,列“name”中被截断。截断值:“学双栖其妻”。
4.总结
由此可见,如果出现"将截断字符串或二进制数据"关键字时一般都是字段超长,我们需要从具体的更新语句中去排查问题。

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