令人烦恼的 ora-01722 无效数字

UUID类型不匹配问题
本文描述了一次由于UUID和INT类型混淆导致的数据插入错误。在POJO实体类中,主键ID原本设置为UUID,但在数据库中被错误地更改为INT类型。这导致了数据类型不匹配的问题。解决方案是将POJO实体类和数据库字段类型统一为VARCHAR(150)。

原因:插入数据类型和数据库字段类型不符合;

出现背景:因为我编写pojo实体类的时候,主键id给的是 uuid(当初误以为uuid是int类型),于是在数据库那边修改了int类型,但pojo实体类忘了修改所导致。

解决:将pojo和数据库的字段值改为varchar(150)就可以了

ORA-01722错误指的是**在Oracle数据库操作中遇到无效数字类型转换时引发的错误**。 当Oracle尝试将一个非数字类型的字符串转换为数字类型,但转换失败时,就会出现这个错误。例如,如果SQL语句中的某个字段预期是数字类型,但是实际上给出的是文本或包含非数字字符的字符串,那么在执行该语句时就会抛出ORA-01722错误。 为了解决ORA-01722错误,你可以采取以下几个步骤: 1. **检查数据类型**:确保你正在操作的数据与数据库表中相应字段的数据类型相匹配。如果不匹配,需要对数据进行适当的类型转换。 2. **使用正确的格式**:在编写SQL查询时,确保使用正确的数字格式。例如,避免在数字字符串中使用逗号或错误的小数点格式。 3. **显式类型转换**:如果需要进行类型转换,请使用Oracle提供的类型转换函数,如`TO_NUMBER`,并确保传递给它的字符串是可以正确转换为数字的。 4. **避免隐式转换**:在某些情况下,Oracle可能会尝试隐式地将一种数据类型转换为另一种数据类型。为了避免这种情况,应该显式地进行类型转换,并在查询中准确地指定数据类型。 通过这些步骤,你应该能够避免或解决ORA-01722错误。如果你在实际操作中仍然遇到问题,可能需要进一步检查SQL语句和数据库表结构,以确保所有数据类型都是正确和一致的。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值