Numer Oracle do C # dziesiętny

Wiem, że w internecie jest kilka wątków i postów dotyczących tego problemu, a ja je przeczytałem (nie każdy artykuł, muszę przyznać), ale żaden z nich nie w pełni mnie satysfakcjonował.

Moja sytuacja:
Używam ODP.net (dll wersja 2.111.6.0), aby uzyskać dostęp do Oracle DB (wersja 10 + 11) i DataReader, aby pobrać dane (.NET 3.5, C #).

Użycie tego kodu powoduje „System.OverflowException (Operacja arytmetyczna spowodowała przepełnienie).'


decimal.TryParse(oraReader.GetOracleDecimal(0).Value.ToString(), 
  NumberStyles.Any, null, out parsedOraDecimal)

a ta skutkuje wartością „3,000000000000000000000000000000000000000000000000000000000E-126'


decimal.TryParse(oraReader.GetOracleValue(0).ToString(), 
  NumberStyles.Any, null, out parsedOraDecimal)

Teraz muszę znaleźć jakiś sposób na prawidłowe pobranie i ocenę tej wartości - DB jest również używany z innych aplikacji, które są poza moją kontrolą, więc zmiany nie są możliwe.

Konwersja typów w moim kodzie C # z „dziesiętnego” na „podwójny” również nie jest opcją.

Jakieś pomysły?

questionAnswers(2)

yourAnswerToTheQuestion