Masalahnya ternyata tidak ada hubungannya dengan tipe data. Saya menggunakan Int64 di Parameter Oracle dan berhasil, tetapi hanya setelah mengatur properti BindByName pada objek Command saya menjadi true.
Rupanya default untuk penyedia .NET System.Data.OracleClient 'BINDING BY NAME', sedangkan default untuk Oracle.DataAccess adalah 'BIND BY POSITION'.
Akan lebih baik jika Pengecualian Oracle yang ditangkap berisi lebih banyak informasi, seperti parameter mana yang melempar pengecualian. Ini mungkin membantu saya menemukan masalah lebih cepat.