java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1

北九道 2016-04-12 04:07:01
String sql = "insert into stat_clb_data " +
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," +
"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," +
"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
PreparedStatement prep = conn.prepareStatement(sql);
for(int rowIndex = 5;rowIndex<=lastRowNum;rowIndex++){
for(int index = 4;index<=lastCellNum;index++){
prep.setString(1, date);
prep.setString(2, zmlm);
prep.setString(3,bblx);
prep.setFloat(4, rowIndex-5);
prep.setFloat(index+1,(float)st.getRow(rowIndex).getCell(index).getNumericCellValue());
if(index==lastCellNum){
prep.setFloat(index+2,0);
prep.setFloat(index+3,0);
prep.setFloat(index+4,0);
prep.setFloat(index+5,0);
prep.setFloat(index+6,0);
prep.setFloat(index+7,0);
}
}
prep.executeUpdate();
}


Exception:
java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1
at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:1821)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3571)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3657)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)
at mor.clb.bl.DataInput.writeInDatabase(DataInput.java:51)
at mor.clb.Console.setData(Console.java:112)
at mor.clb.Console.main(Console.java:855)
注:数据库中前三个字段属性为varchar2,其他的为number ,for循环中遍历数据为54个,数据库总列数为64个
...全文
214 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 ren814 的回复:
[quote=引用 4 楼 qnmdcsdn 的回复:] [quote=引用 3 楼 ren814 的回复:] [quote=引用 2 楼 qnmdcsdn 的回复:] 额,你还是先把sql打出来看看吧
我打了,她这个for循环内 死活进不去,在for循环内输入打印内容都打不出来,直接就是不执行for循环[/quote] 那就看看这个lastRowNum值是多少,小于6了是不会进for循环的[/quote] 是我上面的一段代码敲错了,我要结帖,我要给你40分,你有什么意见没?我这个一共也就只有40,别嫌弃啊! 你真棒,你太棒了,我真是钻牛角尖了,进去出不来了[/quote] 共同学习进步,分不算什么
  • 打赏
  • 举报
回复
引用 4 楼 qnmdcsdn 的回复:
[quote=引用 3 楼 ren814 的回复:] [quote=引用 2 楼 qnmdcsdn 的回复:] 额,你还是先把sql打出来看看吧
我打了,她这个for循环内 死活进不去,在for循环内输入打印内容都打不出来,直接就是不执行for循环[/quote] 那就看看这个lastRowNum值是多少,小于6了是不会进for循环的[/quote] 没看清楚是两层for循环,哪层没进?
北九道 2016-04-12
  • 打赏
  • 举报
回复
引用 4 楼 qnmdcsdn 的回复:
[quote=引用 3 楼 ren814 的回复:] [quote=引用 2 楼 qnmdcsdn 的回复:] 额,你还是先把sql打出来看看吧
我打了,她这个for循环内 死活进不去,在for循环内输入打印内容都打不出来,直接就是不执行for循环[/quote] 那就看看这个lastRowNum值是多少,小于6了是不会进for循环的[/quote] 是我上面的一段代码敲错了,我要结帖,我要给你40分,你有什么意见没?我这个一共也就只有40,别嫌弃啊! 你真棒,你太棒了,我真是钻牛角尖了,进去出不来了
  • 打赏
  • 举报
回复
引用 3 楼 ren814 的回复:
[quote=引用 2 楼 qnmdcsdn 的回复:] 额,你还是先把sql打出来看看吧
我打了,她这个for循环内 死活进不去,在for循环内输入打印内容都打不出来,直接就是不执行for循环[/quote] 那就看看这个lastRowNum值是多少,小于6了是不会进for循环的
北九道 2016-04-12
  • 打赏
  • 举报
回复
引用 2 楼 qnmdcsdn 的回复:
额,你还是先把sql打出来看看吧
我打了,她这个for循环内 死活进不去,在for循环内输入打印内容都打不出来,直接就是不执行for循环
  • 打赏
  • 举报
回复
额,你还是先把sql打出来看看吧
北九道 2016-04-12
  • 打赏
  • 举报
回复
急,在线等,求大神

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧