大家好,又见面了,我是你们的朋友全栈君。
public int addCourseTime(CourseTimeBean ctb){
int csh_no=ctb.getCsh_no();
int csh_id=ctb.getC_id();
String csh_start_time=ctb.getCsh_start_time();
String csh_due_time=ctb.getCsh_due_time();
int csh_numbers=ctb.getCsh_numbers();
int csh_minutes=ctb.getCsh_minutes();
String sql="insert into course_schedule values(?,?,to_date(?,'yyyy-MM-dd hh-mi-ss'),to_date(?,'yyyy-MM-dd hh-mi-ss'),?,?)";
Connection conn=DButil.getConn();
PreparedStatement pstm=null;
int result=0;
try {
pstm=conn.prepareStatement(sql);
pstm.setInt(1,csh_no);
pstm.setInt(2, csh_id);
pstm.setString(3,csh_start_time);
pstm.setString(4,csh_due_time);
pstm.setInt(5, csh_numbers);
pstm.setInt(6, csh_minutes);
result =pstm.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DButil.free(pstm, conn);
return result;
}
}
java.sql.SQLException: ORA-01008: 并非所有变量都已绑定
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093) at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047) at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709) at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:796) at cn.com.courseInfoDao.CourseTimeInfoDao.addCourseTime(CourseTimeInfoDao.java:60)
Java中执行sql语句总是报这个错误,在网上查了一些原因,都说是因为sql语句标点符号有错误,检查了很长时间没有找到符号错误。把sql拿到PL/SQL中执行可以通过。最后发现在result =pstm.executeUpdate(sql);
这句中多加了sql ,在执行时是不需要传sql的,找了半天的错误,原来在这里。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196443.html原文链接:https://javaforall.cn