Possible Bug in Informix JDBC Driver
Posted in 2007
Hi, I'm using IBM's Informix JDBC driver 3.0JC3 (type 4 driver). I'm seeing this weird behavior: If I'm setting a money (numeric/decimal) field to NULL in a batch, it sometimes sets the field to the last non- null value in the batch - or in a previous batch (that is, even with batches of one insert I get non-null values when I'm supposed to get a NULL). I am reading the nullls correctly from another ResultSet. If I execute the command immediately, I do not see this effect. Here are snippets of code to make this clearer: ResultSet rs; PreparedStatement p = ...("insert into ....values ?"); while (rs.hasNext()) { ... p.setBigDecimal(i, rs.getBigDecimal(i)); ... p.addBatch(); } p.submitBatch(); this will occasionally set wrong values for null. when I change this to explicit setting of null: BigDecimal b = rs.getBigDecimal(i); if (rs.wasNull()) { p.setNull(i, java.sql.Types.NUMERIC); } else { p.setBigDecimal(i, b); } it still get wrong results. If, however, I use p.execute() instead of the batch it works fine. any ideas?