У меня проблема с выполнением запросов к базе данных DB2. Числовые значения для некоторых столбцов возвращаются без десятичных знаков, например. У меня есть поле VPACKSP.VPTARA
, которое содержит вес тары.
Выполнение такого запроса
SELECT VPACKSP.VPTARA FROM VPACKSP WHERE VPACKSP.VPTEIL = 123456
возвращает значение 0,000
, правильное значение должно быть 0,880
Выполнение запроса, в котором числовое значение умножается, возвращает правильное значение, но в несколько раз выше
SELECT VPACKSP.VPTARA * 100 FROM VPACKSP WHERE VPACKSP.VPTEIL = 123456
возвращает значение
88,000
Запросы выполняются с использованием 64-разрядного драйвера ODBC ISeries Access Driver версии 13.00.01.0, установленного на Windows Server. Клиент, который я использую, — это Microsoft SQL Server, где связанный сервер был создан с использованием поставщика OLE DB для ODBC.
Фактический запрос выглядит следующим образом:
SELECT
*
FROM OPENQUERY(
[LINKEDSERVERNAME]
,'SELECT VPACKSP.VPTARA FROM VPACKSP WHERE VPACKSP.VPTEIL = 123456'
)
;
Это происходит не для всех числовых столбцов. Я пытался привести к NUMERIC(32,16)
, а также к DECIMAL(10,5)
, а также другим комбинациям десятичных знаков, но все результаты - нули, работает только умножение. Что может быть не так?