Spring'BatchSqlUpdate'类没有正确插入Bigdecimal值

时间:2017-10-17 17:45:05

标签: java spring oracle bigdecimal

我有一个从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;
   }​

请帮忙

0 个答案:

没有答案