OracleDecimal har en större precision än decimal. Av den anledningen måste du först minska precisionen. Glöm all analys, använd implicit konvertering. Prova något i stil med (otestat):
decimal d = (decimal)(OracleDecimal.SetPrecision(oraReader.GetOracleDecimal(0), 28));