Драйвер JDBC DB2, как представляется, усекает точность полей Numeric/Decimal. У меня есть следующие поля, определенные в таблице ПРОДАЖ:Драйвер DB2 JDBC Truncates Decimal
СУММУ AS DECIMAL (16,16)
я тогда сделать следующее заявление вставки:
INSERT INTO ПРОДАЖ (СУММЫ) VALUES (14,12345678)
Если я запрошу использование объекта запроса в Центре управления DB2, я получаю 14.1234567800000000.
Если я сделать это с помощью Белка (клиент DB, который использует драйвер в DB2 JDBC для подключения к базе данных, я получаю 14.12346. То же самое происходит, когда я делаю то же самое с Java кода с использованием Hibernate.
Это приводит я полагаю, что драйвер JDBC урезает точность результата. Есть ли способ настроить JDBC-драйвер с параметрами, чтобы предотвратить это? Я видел параметры JDBC для драйвера JDBC, но ни один из них не описывает один, который влияет на этот .
«DECIMAL (16,16)» немного странно, 14.123456789не подходит (что минимум a будет «DECIMAL (18,16)»). –
Mark и Nayan являются правильными. Это значение * не может * вписываться в столбец DECIMAL (16,16) в DB2. DECIMAL (16,16) не имеет цифр слева от десятичной точки. Как говорится, вы не можете положить 10 фунтов ____ в сумку в 5 фунтов. Может быть, вы здесь ошибались? – WarrenT
есть. Я фактически неправильно понял и думал, что точность была до десятичной точки и масштаба после. Наша фактическая таблица БД имела DECIMAL (19,8). После определения масштаба и точности он работал правильно. – jett