当前位置: 代码迷 >> SQL >> java.sql.SQLException: ORA-01008: 并非全部变量都已绑定
  详细解决方案

java.sql.SQLException: ORA-01008: 并非全部变量都已绑定

热度:111   发布时间:2016-05-05 11:59:23.0
java.sql.SQLException: ORA-01008: 并非所有变量都已绑定
java.sql.SQLException: ORA-01008: 并非所有变量都已绑定

此异常为sql异常,我遇到的时候看java代码如下

public void savegdzcysxx(Gdzcxx gdzcxx) {
  String sql="insert into gdzcxx (id,zcmc,ggxh) values(SEQ_GDZC_ID.nextVAL,?,?)";
  Mysql mysql = new Mysql();
  try {
   mysql.prepareStatement(sql);
   mysql.setString(1, gdzcxx.getZcmc());
   mysql.setString(2, gdzcxx.getGgxh());
   mysql.execute(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  }finally{
   mysql.freeResource();
  }
}

看到预编译所有的变量确实都绑定了问题出在哪呢。后来经同事一提醒看到了

public void savegdzcysxx(Gdzcxx gdzcxx) {
  String sql="insert into gdzcxx (id,zcmc,ggxh) values(SEQ_GDZC_ID.nextVAL,?,?)";
  Mysql mysql = new Mysql();
  try {
   mysql.prepareStatement(sql);
   mysql.setString(1, gdzcxx.getZcmc());
   mysql.setString(2, gdzcxx.getGgxh());
   mysql.execute(sql);

  正确为:mysql.execute();

  } catch (SQLException e) {
   e.printStackTrace();
  }finally{
   mysql.freeResource();
  }
}

只因自己粗心大意酿成的错误,做事一定要细心咯;
  相关解决方案