SqlExceptionHelper 142: ORA-00909: 参数个数无效

Posted Al_tair

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlExceptionHelper 142: ORA-00909: 参数个数无效相关的知识,希望对你有一定的参考价值。

遇到问题:[ERROR] 13:14:34 o.h.e.jdbc.spi.SqlExceptionHelper 142: ORA-00909: 参数个数无效

解决思路:出错的位置在哪里?出错原因在哪里?

思路:

  1. 寻找有效的报错点就行查询信息往往更能一击致命(找重点)
  2. 如果无法查询到有效信息,可以通过debug直接测试可能出现的报错点以及数据的异常点
  3. 找到报错点,我们可以进行分内部原因或者外部原因,如果是内部框架原因,那百度的意义可能就没有那么明显了
  4. 去推测出现错误的几种可能性,更好的缩小范围来清楚问题所在,最终解决问题

上述出现的重点: jdbc.spi.sqlExcepitonHelper 参数个数无效 以及上述蓝色标识的类名

通过debug,发现了语法中count()缺少 * 号导致的参数异常(通过比较老的框架)

ExportAssertDaoImpl.java类调用的方法出现的问题

深入底层就是公司内部的框架frm-3.0.0

重点是这三句话(但是老版本的写法和当前版本的写法并没有区别啊)

这个时候我就在想是否可能是sql解析版本不一样导致的,果真如此

JSQLParser 解析 3.x.x

只需要上面的三条语句就可以实现了

但是 JSQLParser 解析 4.x.x 却没有那么简单(发生翻天覆地的变化)

最终我选择替换的方式来解决,因为考虑最后的结果和就是少个 * ,替换是最简单也是最有效的(不过需要注意转义哦!)

以上是关于SqlExceptionHelper 142: ORA-00909: 参数个数无效的主要内容,如果未能解决你的问题,请参考以下文章

@Column(unique = true) 产生一个 WARN o.h.engine.jdbc.spi.SqlExceptionHelper:SQL 警告代码:0,SQLState:00000

[Lintcode]142. O Check Power of 2

LintCode 142. O时间检测2的幂次

golang 在下载依赖包的时候出现错误:dial tcp 142.251.42.241:443: i/o timeout

golang 在下载依赖包的时候出现错误:dial tcp 142.251.42.241:443: i/o timeout

org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 无效的参数索引 2