NUMBER столбцы всегда возвращаются как десятичные числа в ODP.NET. Чтобы обойти это, извлеките его обратно как OracleDecimal, который имеет несколько методов «Toxxxx» для преобразования значения в нужный вам тип .NET.
while (myOracleDataReader.Read())
{
int x = myOracleDataReader.GetOracleDecimal(0).ToInt32();
}
(Простите, если приведенный выше код неверен на 100%, так как у меня дома не установлен ODP.NET.)