我想用Java代码插入到Oracle表中,但PreparedStatement出现错误
我想在表中插入一行,但我正在执行PreparedStatement,并不断出现以下错误: java.sql.SQLException:列索引无效 代码如下: 这份事先准备好的声明有什么不对我想用Java代码插入到Oracle表中,但PreparedStatement出现错误,java,sql,oracle,Java,Sql,Oracle,我想在表中插入一行,但我正在执行PreparedStatement,并不断出现以下错误: java.sql.SQLException:列索引无效 代码如下: 这份事先准备好的声明有什么不对 String sql = "INSERT INTO ASIST_EMAIL (NUME, CNPCUI, LOCALITATEA, STRADA, NUMAR, BLOC, SCARA, APARTAMENT, JUDET, EMAIL, TEXTINTREBARE, CATEGCONTRIB, SECVEN
String sql = "INSERT INTO ASIST_EMAIL (NUME, CNPCUI, LOCALITATEA, STRADA, NUMAR, BLOC, SCARA, APARTAMENT, JUDET, EMAIL, TEXTINTREBARE, CATEGCONTRIB, SECVENTA, DATA_EMAIL, CATEGSOLICIT, NUMEFISIER, ARONDARE, DOMFISCAL, SUBCATEGSOLICIT, TIPINTRARE, STARE, CODCATEG, CODSUBCATEG, HOST, AJCODSOC, AJCAEN, AJPERSCONTACT, DENREG) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(0, "test");
ps.setInt(1, 999);
ps.setString(2, "xxx");
ps.setString(3, "xxx");
ps.setString(4, "xxx");
ps.setString(5, "xxx");
ps.setString(6, "xxx");
ps.setString(7, "xxx");
ps.setString(8, "xxx");
ps.setString(9, "xxx");
ps.setString(10, "xxx");
ps.setString(11, "xxx");
ps.setInt(12, 999);
ps.setTimestamp(13, new java.sql.Timestamp(System.currentTimeMillis()));
ps.setString(14, "xxx");
ps.setString(15, "xxx");
ps.setString(16, "xxx");
ps.setString(17, "xxx");
ps.setString(18, "xxx");
ps.setInt(19, 99);
ps.setInt(20, 9);
ps.setInt(21, 999);
ps.setInt(22, 999);
ps.setString(23, "xxx");
ps.setInt(24, 9);
ps.setInt(25, 9999);
ps.setString(26, "xxx");
ps.setString(27, "xxx");
ps.executeUpdate();
您在setters中有一个错误的索引,来自: parameterIndex-第一个参数为1,第二个参数为2
还有——这么大的请求很难理解。步骤1)尽可能简化。()ps.setXXX方法的第一个索引应该是
1
。