Я пишу в таблицу Kudu, используя impala-jdbc 2.6.4.1005.
Я получил эту ошибку при вставке BigDecimal со значением 7896163500 в DECIMAL (20,2).
[Cloudera][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: Possible loss of precision for target table 'ST.RFQ_SPOT'.
Expression '7896163500' (type: BIGINT) would need to be cast to DECIMAL(20,2) for column 'req_amount'
Тем не менее, значение, которое я вставляю, поместится и в DECIMAL (12,2).
Я не могу понять, почему я получаю эту ошибку от водителя.
Если я определю столбец как DECIMAL (30,2), он будет работать правильно.
Кроме того, если я попытаюсь вручную выполнить приведение, я получу ожидаемый результат:
select cast (cast(7896163500 as BIGINT) as DECIMAL(12,2))
1 7896163500.00