2017-08-02 65 views
0

我得到的BatchUpdateException,同时通过文件的BatchUpdateException在PostgreSQL数据库

的例外,我得把数据插入到PostgreSQL是:

批量录入0 {调用PACKAGE_NAME.PROCEDURE_NAME()}被中止。打电话来的getNextException看到事业

源代码如下: -

successMsg = getJdbcTemplate().batchUpdate("{call "+ packageName +"."+ procedureName +sb.toString(),new BatchPreparedStatementSetter(){     

     @Override 
     public void setValues(PreparedStatement ps, int i) throws SQLException 
     { 
      String values = insertList.get(i); 
      String []valuesArray=values.split(","); 
      int parameterCount=ApplicationConstant.ONE; 
      for(int valueIndex=0;valueIndex<valuesArray.length;valueIndex++) 
      { 
       ps.setString(parameterCount++, String.valueOf(valuesArray[valueIndex])!=null?String.valueOf(valuesArray[valueIndex]).trim().replaceAll("@@@", ","):""); //added trim() in order to avoid blank space entry in DB. 
      } 
      if(financialMonth!=null&&!financialMonth.equals("")) 
      { 
       ps.setString(parameterCount++,"01-"+financialMonth); 
      } 
      ps.setInt(parameterCount++,loginBean.getUserId()); 
      ps.setDate(parameterCount, null);      
     } 

     @Override 
     public int getBatchSize() 
     { 
      return insertList.size(); 
     } 

    }); 
+1

当你按照建议“调用getNextException来查看原因”时,你得到了什么? –

回答

0

作为异常说,你应该打电话到的getNextException看的原因。

try{ 
    successMsg = getJdbcTemplate().batchUpdate("{call "+ packageName +"."+ procedureName +sb.toString(),new BatchPreparedStatementSetter(){     
} catch (SQLException se) { 
    se.getNextException().printStackTrace(); 
}