java.sql.SQLException: 无法转换为内部表示

      今天测试别人写的代码的时候,遇到了一个bug。后来百度一下,说是一个类型的结果值强加到另一个类型的对象属性上,简单的说就是类型不匹配,mybatis 设置值的时候报错。其实大神们看到这里肯定想到就是实体类出错了,当时我也是这么想的,但是发现这个实体类与优化之前差不太多的。字段的属性并没有改变的。唯一改变大的就是SQL了。然后.... 这个sql吧,贼鸡儿绕,这里贴出出错部分

图片中被标出来的地方就是导致此次错误的原因,因为在实体类里用的是Double 类型的,使用这个decode函数做判断的时候,把值给改成了String类型的了.....也是服了这个SQL的复杂程度。不过这也说明在使用函数的时候,要仔细认真,不能光把函数语法写对了就OK了,还有最关键的是在PL\SQL运行成功的sql,让程序跑可不一定就对了。这也是我第一次遇到这种在PL\SQL中运行是正常的,程序跑出错的。

然后这个错误的改法就是确保这些函数判断的结果一定得是数值类型,不然按照这个SQL的写法把double类型换成了String了,那就依它,把涉及到判断的实体字段也改成String好了。 我想应该不会有人会犯这种错误吧 = ,=    但是还是在这里记录一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值