达梦数据库 【-6111: 字符串转换出错】问题处理

简介: 在更新数据库某个值属性时,遇到了“字符串转换出错”的错误。经过分析,发现是由于 `id` 字段实际上是字符串类型而非数值类型导致的。最终通过将 `id` 的值改为字符串类型解决了问题。此问题提醒我们在处理数据库时要仔细检查表结构,不要凭经验臆断字段类型。

问题背景

今天在更新数据库某一个值属性的时候,执行更新语句报错提示 -6111: 字符串转换出错,但是自己检查了sql语句,只是一个简单的sql,并没有需要字符串转换的地方,感觉很奇怪

image.png

问题分析

根据报错信息来分析,对于达梦数据库错误 -6111 通常表示在数据库操作中,尝试将一个字符串转换为另一种数据类型时失败了。这可能是因为字符串的格式与目标数据类型不兼容,例如,尝试将字符串转换为数值类型,但字符串中包含非数值字符。最终归结到当前语句的问题还是说发生了字符串转换错误。于是我再一次仔细的查看了当前sql语句

 UPDATE alm.sys_coa_detail set description='描述当前字段的属性' where id=49;

认真排查了当前sql涉及到的两个字段 description 和 id 最终发现原来 id 竟然也是一个字符串类型

image.png

问题总结

到这里,问题分析结束之后就知道问题怎么解决了,就是将sql的条件语句 id 值 换成字符串类型的数字就可以了。那么为什么会出现这么一条简单的更新语句报错的情况呢?其实在发生问题的时候,确实是比较懵的,不管对于新手开发者或者是老手开发者来说,这么简单的更新语句能报错,着实有点奇怪。那么现在找到问题原因之后再来回看为什么会发生这样的错误,一个原因就是表结构id 字段设计成 varchar 类型,这个确实有点反常规。另外一个就是不要太相信以往关于数据库字段的经验,而应该以实际表机构为准,不能想当然的认为 id 就一定是 Long 数值型,总的来说,就是需要认真细致就好了。

相关文章
|
4月前
|
监控 Java 应用服务中间件
达梦数据库DEM监控部署教程分享
达梦数据库DEM监控部署教程分享
182 2
|
12天前
|
SQL 弹性计算 安全
在云上轻松部署达梦数据库
达梦数据库(DM Database)是达梦数据库有限公司开发的关系型数据库管理系统,广泛应用于政府、金融、能源等行业。它具备高性能、高安全、兼容性强、易管理等特点,支持多种操作系统,适用于关键业务系统、政务系统及大数据处理等场景。在阿里云上,可通过一键部署快速使用达梦数据库DM8。
|
22天前
|
SQL 存储 关系型数据库
达梦数据库字段类型 varchar 转 text
本文介绍了在达梦数据库中将字段类型从 `varchar` 转换为 `text` 的两种方法:一是通过 DM数据迁移工具导出表结构和数据,修改后重新导入;二是通过添加临时字段、转移数据、删除原字段并重命名临时字段的方式实现转换。针对不同数据量的表,提供了灵活的解决方案。
|
2月前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
57 15
|
2月前
|
SQL 数据库
达梦数据库阻塞死锁及解锁
【10月更文挑战第6天】本文介绍了在达梦数据库中模拟和解决死锁的方法。首先通过创建表并插入数据但不提交事务,模拟了阻塞情况;接着利用V$TRXWAIT和V$SESSIONS视图查询阻塞信息,并通过SP_CLOSE_SESSION函数解决阻塞。最后讨论了死锁的成因及避免策略,强调了正确管理事务的重要性。
|
6月前
|
数据库
达梦数据库最大连接数处理
达梦数据库最大连接数处理
130 0
|
2月前
|
Oracle Java 关系型数据库
使用DataGrip链接达梦数据库
使用DataGrip链接达梦数据库
168 0
|
4月前
|
Oracle 关系型数据库 Java
银河麒麟v10安装达梦数据库
银河麒麟v10安装达梦数据库
354 1
|
4月前
|
开发框架 .NET 关系型数据库
【Azure 应用服务】App Service 通过门户配置数据库连接字符串不生效 
【Azure 应用服务】App Service 通过门户配置数据库连接字符串不生效 
|
6月前
|
Java Linux 数据库连接
达梦数据库屏蔽关键字
达梦数据库屏蔽关键字
111 1
下一篇
DataWorks