Primeiro:O cliente/provedor Oracle é uma bagunça. E isso vale tanto para o MS (depreciado de qualquer maneira) quanto para o Oracle.
Para se conectar a um banco de dados Oracle por meio do provedor ODP.NET, três coisas precisam ser configuradas corretamente:
- O cliente Oracle precisa ser configurado corretamente (não tem nada a ver com o provedor .NET, isso se refere ao cliente Oracle instalado geralmente em c:\oracle)
- O provedor ODP.NET precisa ser compatível com o cliente Oracle instalado
- A arquitetura de cliente e provedor e seu aplicativo precisam corresponder, você não pode usar o cliente de 64 bits com um provedor/aplicativo x86 e vice-versa
Normalmente, o melhor é ter a versão mais recente de ambos. Mas se você quiser se livrar desse problema de uma vez por todas, use um provedor oracle .NET de terceiros.
ATUALIZAÇÃO
Um dos melhores é do DataDirect (sem afiliação):
http://www. datadirect.com/products/net/net-for-oracle/index.html
Não é apenas a instalação (sem necessidade de cliente oracle), mas também é mais rápido, totalmente gerenciado, x64 e o suporte geral é muito melhor do que o que você obtém com o ODP.NET. Vai custar-lhe embora.
O DevArt também é bastante decente (e muito, muito mais barato):
http:/ /www.devart.com/dotconnect/oracle/
Decidimos pelo DataDirect por motivos de extensibilidade, mas isso não deve ser relevante para você.
Aqui você pode encontrar uma boa compilação de terceiros que criam provedores .NET, mas não limitados ao oracle:
http://msdn.microsoft.com/en-us/data/dd363565