Оказва се, че проблемът няма нищо общо с типовете данни. Използвах Int64 в параметъра на Oracle и той проработи, но само след като зададох свойството BindByName на моя обект Command на true.
Очевидно по подразбиране за доставчика на .NET System.Data.OracleClient „BINDING BY NAME“, докато по подразбиране за Oracle.DataAccess е „BIND BY POSITION“.
Би било хубаво, ако уловеното изключение на Oracle съдържаше повече информация, като например кой параметър хвърля изключението. Това може да ми е помогнало да открия проблема по-рано.