ORA-25137: 数据值超出范围

ORA-25137: 数据值超出范围

今天也是普普通通的一天~

在一次使用Mybaits进行数据库使用时,代码抛出了异常
在这里插入图片描述
一眼就可以看出,这是数据类型在强转时出现了问题,但是在代码的检查中,不管是数据库的类型,数据的长度,以及resultMap接收的类型,都没有发现有错误的地方。
最后只能从SQL看起,发现SQL在数据库中查询时只返回了一条数据,而在原表中,进过分析,应该是有几十条数据返回的,于是尝试修改SQL,才发现了一个很奇怪的问题。。。。
SQL中存在一句
cast(a.status_cd as char) status_cd
而在我改成
to_char(a.status_cd)
之后,查询的结果就正确了!

这个字段在数据库中是8位的,因此又尝试
cast(a.status_cd as char(8)) status_cd
对转换的对象设置长度,发现也是可行的!终于找到问题所在了,修改完工!

这个问题最奇怪的是,虽然MyBaits抛出了异常,但是SQL在我的Navicat中竟然没有异常,但是查询的结果是不正确的,现在这里记录一下,以后有空了再研究研究。

你可能感兴趣的:(ORACLE,Oracle,ORA-25137)