嗨,伙计们下面的代码抛出一个错误我有一个插入语句创建一次,并在while循环我动态设置参数,并在最后我说ps2.addBatch()再创建代码动态插入Java编写语句错误
rs = st.executeQuery("SELECT column_name FROM all_tab_cols
where lower(table_name)= '" + tableName + "' order by column_id");
sql = new StringBuffer(300);
sql.append("insert into ").append(tableName).append("(");
String prefix="";
while (rs.next())
{
sql.append(prefix).append(rs.getString("column_name"));
values.append(prefix).append("?");
prefix= ",";
}
sql.append(") values(").append(values).append(")");
ps2 = conn.prepareStatement(sql.toString());
while ((eachLine = in.readLine()) != null))
{
for (int k=stat; k <=45;k++)
{
ps2.setString (k,main[(k-2)]);
}
stat=45;
for (int l=1;l<= 2; l++)
{
ps2.setString((stat+l),pdp[(l-1)]);// Exception
}
ps2.addBatch();
}
这是错误
java.lang.ArrayIndexOutOfBoundsException:45 在 oracle.jdb c.dbaccess.DBDataSetImpl._getDBItem(DBDataSetImpl.java:378) 在 oracle.jdbc.dbaccess.DBDataSetImpl._createOrGetDBItem(DBDataSetImpl.java:781) 在 oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java: 2450) 在 oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:1155) 在 oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:1572) 在 Processor.main(Processor.java :233)
我不能确定你希望我们如何用这么少的信息解决这个... – 2010-12-22 07:15:28
然后检查PDP []数组长度^^ – pinichi 2010-12-22 07:21:04