一直没写过储蓄过程,今天试着写了下,但问题随着出来了,在调用时出现如下异常:
执行SQL异常!SQL: {call P_VIP_RULE_INS(?,?,?,?,?,?,?,?)}
java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 2
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.driver.OracleStatement.checkBindsInAndOut(OracleStatement.java:1876)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2638)
at oracle.jdbc.driver.OraclePreparedStatement.doScrollPstmtExecuteUpdate(OraclePreparedStatement.java:3975)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:623)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:656)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
at gx.db.impl.DBM.executePro(DBM.java:206)
在网上查了下,大家也遇到过此类问题,具体原因说明如下:
参数不匹配,参数个数有问题,参数 sql有问题
这个错误有很多人在发送语句时出的错.如:
有的sql语句可能全角与半角出现的:java.sql.SQLException无效的列索引
通过从大家的答案中,基本可以确认是自己写法有问题,通过检查和测试,找出原因是出在设置参数时,类型搞错了