java.sql.SQLException: ORA-01008: 并非所有变量都已绑定
--
此异常为sql异常,我遇到的时候看java代码如下
conn_orca_open();
java.text.SimpleDateFormat df = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
java.util.Date time = null;
try {
time = df.parse(df.format(new Date()));
} catch (ParseException e) {
e.printStackTrace();
}
java.sql.Timestamp st = new java.sql.Timestamp(time.getTime());
String sqlString = "INSERT INTO DDS(STATUS,Y,WINPRO,INIT_DATE,PS) VALUES(?,?,?,?,?)";
try {
pre = con.prepareStatement(sqlString);
pre.setString(1, "2132221");
pre.setString(2, "0011");
pre.setFloat(3, 4f);
pre.setTimestamp(4, st);
pre.setString(5, "JAVA");
pre.executeUpdate(sqlString);
} catch (SQLIntegrityConstraintViolationException e) {
System.out.println("insert_error,already existed in database.");
} catch (Exception e) {
// SQLIntegrityConstraintViolationException
e.printStackTrace();
try {
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
con.setAutoCommit(true);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// e.printStackTrace();
} finally {
try {
con.commit();
if (pre != null)
pre.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
conn_orca_close();
看到预编译所有的变量确实都绑定了问题出在哪呢
在网上找了找才发现
conn_orca_open();
java.text.SimpleDateFormat df = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
java.util.Date time = null;
try {
time = df.parse(df.format(new Date()));
} catch (ParseException e) {
e.printStackTrace();
}
java.sql.Timestamp st = new java.sql.Timestamp(time.getTime());
String sqlString = "INSERT INTO DDS(STATUS,Y,WINPRO,INIT_DATE,PS) VALUES(?,?,?,?,?)";
try {
pre = con.prepareStatement(sqlString);
pre.setString(1, "2132221");
pre.setString(2, "0011");
pre.setFloat(3, 4f);
pre.setTimestamp(4, st);
pre.setString(5, "JAVA");
pre.executeUpdate();
} catch (SQLIntegrityConstraintViolationException e) {
System.out.println("insert_error,already existed in database.");
} catch (Exception e) {
// SQLIntegrityConstraintViolationException
e.printStackTrace();
try {
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
con.setAutoCommit(true);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// e.printStackTrace();
} finally {
try {
con.commit();
if (pre != null)
pre.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
conn_orca_close();
只因自己粗心大意酿成的错误,做事一定要细心咯;