本文主要是介绍Oracle踩坑:java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Oracle数据库新建表格SESSION_CALLINFO,表中status和intime字段均为number类型,没有添加数据。Mybatis在执行下面sql时报错java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字。
select CALLUUID from SESSION_CALLINFO where STATUS=0 and INTIME >=#{startTime} and INTIME <=#{endTime}
开始以为是status没有设置默认值的问题,改成nvl(STATUS,0)=0之后依然报错。后来检查发现startTime和endTime传递的都是String类型,而Oracle在where后做匹配“字段(number类型)=某值”会自动调用TO_NUMBER()方法对值进行转换,因此传入字符串会报错,将传入的字段改为long类型之后恢复正常。
这篇关于Oracle踩坑:java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!