0

私は春の jdbcTemplate.batchupdate を使用して一連のレコードを挿入しています。

String SQL_QUERY = "UPDATE RECORD_TABLE SET VALUE=?,LAST_UPDATE=?, LAST_USERNAME=? WHERE RECORD_NBR=?"
List<Object[]> updateParams = new Object[]{
 myDomainVO.getBigDoubleValue(),
 myDomainVO.getLastupdateDate(),
 myDomainVO.getLastUserName(),
 myDomainVO.getRecordNbr()
};
getJdbcTemplate().batchupdate(sql,updateParams);

今、私の Domain オブジェクトは 22 桁の double 値を持っていますが、このコードを実行すると、DB は 2147483647 である Integer.MAX_VALUE で更新されます。

また、int[] argType を batchUpdate の 3 番目のパラメータとして渡そうとしました。

int[] updateParamType = new int[]{
Types.DOUBLE,Types.DATE,Types.VARCHAR,Types.NUMERIC
}

なぜそのような振る舞いをするのか、誰でも説明できますか?

参考までに、私はオラクル11gを使用しています。

4

1 に答える 1