OracleDataReader InvalidCastException: «Указанное приведение недопустимо» для десятичных типов в .NET - PullRequest
0 голосов
/ 19 июня 2019

При использовании Oracle.ManagedDataAccess.Client.OracleDataReader и последующем вызове reader.GetValue(i) мы получаем исключение выше.

Это можно смоделировать с помощью этого запроса:

SELECT 1/3 as foo FROM DUAL

Проблема возникает, когда оракулданные относятся к типу Oracle Decimal, а точность данных превышает количество десятичных разрядов в .NET.И главная проблема в том, что reader.GetValue(i) делает это, так что вы не можете контролировать тот факт, что он выдает эту ошибку внутренне.

У меня действительно есть обходной путь, который я опубликую как ответ, так как яУдарьте это несколько раз в прошлом, и у Интернета пока нет хорошего ответа.

Связанный:

https://community.oracle.com/thread/4017980

«Указанное приведение недопустимо» при заполнении DataTable из OracleDataAdapter.Fill ()

...