今天测试环境下有几个功能报错,看到weblogic日志中报错,如下所示。到网上查了下错误ORA-01428是参数''超出范围,我在测试环境下试了一下,select ln(0) from dual;也报这个错误,如何去查这个问题呢?
java.sql.SQLException: ORA-01428: argument '0' is out of range
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:862)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153)
1. 揣测是SQL的问题,在本地的开发环境打出SQL语句,在测试环境数据库上执行,没有问题。
2. 揣测是数据的问题,用本地的工程连测试环境数据库,测试没有问题。
3. 揣测是代码的问题,把测试环境下的代码与本地环境对比,没有差别。
4. 揣测是驱动的问题,打开测试环境weblogic控制台,驱动程序类名称:oracle.jdbc.xa.client.OracleXADataSource,确定不是这个驱动,正确的驱动应该是oracle.jdbc.OracleDriver。改完驱动后重启,功能恢复正常。