OracleDecimal a une plus grande précision que décimal. Pour cette raison, vous devez d'abord réduire la précision. Oubliez toute l'analyse, utilisez la conversion implicite. Essayez quelque chose comme (non testé) :
decimal d = (decimal)(OracleDecimal.SetPrecision(oraReader.GetOracleDecimal(0), 28));