共计 616 个字符,预计需要花费 2 分钟才能阅读完成。
- bug 异常主要信息如下:
java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
- 如图所示:
1. 先说一下 bug 的由来,我是用 mybatis-plus 执行一个删除操作,xxxMapper.deleteById(xxxId),想删除某个 id 下的一个数据,然后就报错了。
2.**{conn-10001, pstmt-20053} execute error. DELETE FROM WTC_RECEIPT_BACK_T WHERE RECORD_ID = ?
java.sql.SQLSyntaxErrorException: ORA-01722: invalid number**,这里的异常信息也很清晰了,执行 sql 语句出错,无效的数字类型。原因就是 Do 对象的主键 Id 是 Long 类型,而我传入的 Id 是 String 类型,故想执行删除操作行不通。
3. 值得一提的是,我发现 sql 执行出错的时候,报的异常信息是分类的 java.sql.SQLSyntaxErrorException: ORA-01722:xxx,如果是其他操作引起的错误,应该就不是报 ORA-01722 这个错误信息,如还有 ORA-00933:,ORA-00923 等错误信息。在搜我上面那个错误的时候,还找到了其他比较严谨一点的说法:
- 这个 stackoverflow 上面提问的问题:
- stackoverflow 上面比较高赞的回答:
- 如果文章有误,希望指出来。
正文完
发表至: java
2019-09-01