OracleDecimal có độ chính xác lớn hơn số thập phân. Vì lý do đó, bạn phải giảm độ chính xác trước. Quên tất cả phân tích cú pháp, sử dụng chuyển đổi ngầm định. Hãy thử điều gì đó dọc theo dòng (chưa được kiểm tra):
decimal d = (decimal)(OracleDecimal.SetPrecision(oraReader.GetOracleDecimal(0), 28));