OracleDecimal tiene una precisión mayor que decimal. Por esa razón, primero debe reducir la precisión. Olvídese de todo el análisis, utilice la conversión implícita. Pruebe algo como (no probado):
decimal d = (decimal)(OracleDecimal.SetPrecision(oraReader.GetOracleDecimal(0), 28));