1. 程式人生 > >ORA-01008: 並非所有變數都已繫結

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();
  }
 }

只因自己粗心大意釀成的錯誤,做事一定要細心咯;