前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nested exception is dm.jdbc.driver.DMException: 字符串截断

nested exception is dm.jdbc.driver.DMException: 字符串截断

作者头像
六月的雨在Tencent
发布2024-04-15 08:13:17
5680
发布2024-04-15 08:13:17
举报
文章被收录于专栏:CSDNCSDN
nested exception is dm.jdbc.driver.DMException: 字符串截断

背景

今天在日常工作中遇到了一个问题,正常的 insert into操作报错了

代码语言:javascript
复制
### Cause: dm.jdbc.driver.DMException: 字符串截断
; 字符串截断; nested exception is dm.jdbc.driver.DMException: 字符串截断

报错日志的详细信息如图

问题分析

根据以往经验应该是字段长度不够,才会触发这样的报错,于是排查了数据库中表的字段长度

再对比控制台打印的insert into 插入语句的参数长度,理论上没有看出哪个字段超出最大长度,于是将控制台中的sql拼写后放入【DM管理工具】进行尝试

代码语言:javascript
复制
INSERT INTO edu_course_api_log ( title, business_type, method, request_method, operator_type, oper_url, oper_ip, oper_param, json_result, status, oper_time, exec_time ) values ( '培训申请第一次或第二次提交审核接口', 8, 'com.dongao.modules.api.controller.TrainApiController.submitExamine()', 'get', 3, '/hbJxjyUser/api/train/submitExamine', '172.16.210.39', '{"sign":["28971d8a3203c3a786b6ce5e8cc5b397"],"applyId":["5"],"type":["1"]}', '{"code":200,"data":{},"success":true,"message":"操作完成."}', 1, now(), 18702 );

可以很直观的看到具体有问题的字段

查阅待插入字段的内容长度

汉字长度 17,而数据库"TITLE" VARCHAR(50),从通常的理解应该是可以放下的,那么查阅达梦数据库文档得知

代码语言:javascript
复制
MySQL 中 varchar(1) 可以存一个汉字,DM 数据库是以字节为单位。gb18030 字符集,varchar(2) 才可以存一个汉字;UTF-8 字符集,varchar(3) 才可以存一个汉字。此种情况下,为了保证汉字可以完整的被存储,扩大字段是合理的。

到这里也就理解了,title字段最大varchar(50) ,而数据库是UTF-8 字符集,17个汉字占用存储空间就是17*3=51>50,因而导致报错 nested exception is dm.jdbc.driver.DMException: 字符串截断

问题解决

找到了原因,那么解决方案就明晰了,可以更改字段长度或者在插入时控制title 汉字内容长度不能超过 16个汉字即可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • nested exception is dm.jdbc.driver.DMException: 字符串截断
  • 背景
  • 问题分析
  • 问题解决
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档