Número do Oracle para C # decimal

Eu sei que existem vários tópicos e posts sobre este assunto na internet e eu os li (não tenho que admitir), mas nenhum deles me satisfez totalmente.

Minha situação:
Estou usando o ODP.net (dll versão 2.111.6.0) para acessar o banco de dados Oracle (versão 10 + 11) e um DataReader para recuperar os dados (.NET 3.5, C #).

Usando este código resulta em um 'System.OverflowException (operação aritmética resultou em um estouro.)'


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

e este resulta em um valor de '3,000000000000000000000000000000000000000000000000000000000E-126'


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

Agora eu tenho que encontrar alguma maneira de recuperar e avaliar este valor corretamente - o banco de dados também é usado a partir de outros aplicativos que estão fora do meu controle para que as mudanças não sejam possíveis.

Convertendo os tipos no meu código c # de 'decimal' para 'double' também não é realmente uma opção.

Alguma ideia?

questionAnswers(2)

yourAnswerToTheQuestion