Oracle JDBC driver v10.0.1.4 + Java 5

Dec 04, 2008 00:39

в таблицу Oracle 10g, где колонка определена как numeric делается insert очень маленького числа (1E-15). результат поражает всяческое воображение. в таблице будет отображено число 5115.
на самом деле проблема в том, что драйвер версии 10.1.0.4 вызывает на объекте BigDecimal метод toString(), который был изменён в Java 5 чтобы поддерживать JSR-13. ( Read more... )

jdbc

Leave a comment

Comments 33

sorhed December 3 2008, 23:15:11 UTC
О да. Я лично имел счастье напороться на этот баг. Он доставил мне две крайне весёлых недели. :)

Reply

anton_arhipov December 3 2008, 23:16:31 UTC
этот баг позавчера нам доставил весёлое утро, когда у клиента оказалось несколько миллионов на счету вместо накапавших копеек :)

Reply

sorhed December 3 2008, 23:21:01 UTC
Сочувствую. :)
(кстати, он довольно давно ведь присутствует - я на него напоролся года два назад).

Reply

anton_arhipov December 3 2008, 23:22:16 UTC
У нас миграция на Java 5 только сейчас произошла. А так жили счастливо в неведании.

Reply


kefirfromperm December 4 2008, 03:40:39 UTC
Я еще больше разочарован в оракл. За такую хню надо расстреливать!

Reply

anton_arhipov December 4 2008, 07:46:37 UTC
это кстати не первая шишка от оракловского драйвера: тыц

Reply

v_i_y December 4 2008, 09:21:58 UTC
баг конечно неприятный, что и говорить.
но вам не приходило в голову, что расстреливать нужно тех, кто хранит наши с вами деньги в базе в колонке с плавающей запятой?

Reply

anton_arhipov December 4 2008, 09:29:11 UTC
+1

по-человечески могли бы хранить в разных колонках.

Reply


alamar December 4 2008, 20:20:01 UTC
Но что в жаве BigDecimal выводится в научной нотации - это, конечно, EPIC FAIL жабы.

Чисто по человечески глупо.

Reply

alamar December 4 2008, 20:20:48 UTC
Хотя, если учесть, что BigFloat никакого нет.
И черт его знает!

Reply


Leave a comment

Up