Problemet viser sig ikke at have noget at gøre med datatyperne. Jeg brugte Int64 i Oracle-parameteren, og det virkede, men kun efter at have sat BindByName-egenskaben på mit Command-objekt til sand.
Tilsyneladende er standarden for .NET System.Data.OracleClient-udbyderen 'BINDING BY NAME', mens standarden for Oracle.DataAccess er 'BIND BY POSITION'.
Det ville have været rart, hvis den fangede Oracle-undtagelse ville have indeholdt mere information, som hvilken parameter der udløste undtagelsen. Dette kan have hjulpet mig med at opdage problemet hurtigere.