Oracle nombre de C# décimal

Je sais qu'il y a plusieurs discussions et de messages concernant ce problème dans internet et j'ai lu (et pas à chaque article, je dois l'avouer), mais aucun d'entre eux n'avaient pleinement me satisfaire.

Ma situation:
Je suis à l'aide d'ODP.net (la version de la dll 2.111.6.0) pour accéder à l'Oracle DB (version 10 + 11) et un DataReader pour récupérer les données (.NET 3.5, C#).

À l'aide de ce code entraîne dans un " Système.OverflowException (opération Arithmétique a entraîné un dépassement de capacité.)'


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

et celui-ci donne une valeur '3,000000000000000000000000000000000000000000000000000000000 E-126'


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

Maintenant, je dois trouver un moyen de le récupérer et d'évaluer cette valeur correctement - le DB est également utilisé dans d'autres applications qui sont hors de mon contrôle, si les modifications ne sont pas possibles.

De la conversion de types dans mon code C# de 'virgule' à 'double' n'est pas vraiment une option.

Des idées?

OriginalL'auteur robert.oh. | 2009-12-15