OracleDecimal har en større præcision end decimal. Af den grund skal du først reducere præcisionen. Glem al parsing, brug implicit konvertering. Prøv noget i stil med (utestet):
decimal d = (decimal)(OracleDecimal.SetPrecision(oraReader.GetOracleDecimal(0), 28));