我有一个从excel读取数据并使用Spring BatchSqlUpdate类将其写入Oracle DB的应用程序。对于大多数情况,这些值正在被正确插入,但对于一些罕见的情况,我遇到了以下问题。
在我的一个列teh类型的Spring sql类型配置为'BigDecimal',所以我将从excel读取的值转换为Bigdecimal。我想将'24445720'转换为BigDecimal,结果为'2.444572E + 7'。我将相同的值传递给update命令,但是值插入为'2444572',最后0被截断。
代码:
BigDecimal.valueOf (((Number) value).doubleValue ()); //convert value
//Code used for insert data
BatchSqlUpdate upd = createBatchUpdate ();
for (BillEvent event : events) {
Object params[] = getInsertParamsForEvent (event);
upd.update (params);
}
upd.flush ();
private BatchSqlUpdate createBatchUpdate () {
BatchSqlUpdate upd = new BatchSqlUpdate (ds, insEvent.getSql (),
insEventTypes);
upd.compile ();
upd.setBatchSize (100);
upd.setTrackRowsAffected (false);
return upd;
}
请帮忙