【发布时间】:2017-08-02 06:51:38
【问题描述】:
通过文件将数据插入 PostgreSQl 时出现 BatchUpdateException
我得到的例外是:
批处理条目 0 {call 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();
}
});
【问题讨论】:
-
当您遵循“调用 getNextException 以查看原因”的建议时,您得到了什么?
标签: postgresql jdbc batch-updates