Acontece que o problema não tinha nada a ver com os tipos de dados. Usei o Int64 no Oracle Parameter e funcionou, mas só depois de configurar a propriedade BindByName no meu objeto Command para true.
Aparentemente, o padrão para o provedor .NET System.Data.OracleClient 'BINDING BY NAME', enquanto o padrão para Oracle.DataAccess é 'BIND BY POSITION'.
Teria sido bom se a exceção do Oracle capturada tivesse mais informações, como qual parâmetro estava lançando a exceção. Isso pode ter me ajudado a descobrir o problema mais cedo.