Press "Enter" to skip to content

ODP.NET: The provider is not compatible with the version of Oracle client

Uma dica rápida hoje :).

ODP.NET é o provedor de acesso a dados disponibilizado pela Oracle para .NET. É recomendado a utilização do provider oficial da Oracle, até porque o namespace System.Data.OracleClient está com as classes marcadas como deprecated desde a versão 4.0.

Quem tentar utilizar a ODP.NET pode se deparar com o erro “The provider is not compatible with the version of Oracle client”. O Oracle precisa de um client instalado no computador que executará a aplicação que fará uso do banco de dados, e se a versão do ODP.NET for diferente da versão do Oracle client instalado esse erro irá ocorrer.

Um jeito simples de resolver o problema é utilizar a ODP.NET distribuída com o Oracle client, mas isso pode ser complicado, já que não temos controle sobre as versões dos clients Oracle instalados em produção.

Desde a versão 12c a Oracle libera o ODP.NET e o ODP.NET Managed. Utilize o ODP.NET Managed para resolver o problema da incompatibilidade com a versão do client do Oracle.

Utilizei o ODP.NET Managed 12c com um client versão 9 e tudo funcionou!!! Para quem utiliza o provider disponibilizado pelo .NET ficará espantado com os ganhos de desempenho com essa simples migração de provider ;).

Abraços e até o próximo post.

  • Joao Paulo Lima Braga

    Muito obrigado por essa dica, o meu problema era exatamente esse! Estava usando uma versão do ODAC mais recente que a compatível com o servidor oracle.

  • polianadias

    Olá Márcio, baixei a versão ODP.NET Managed e instalei no pc que o programa vai rodar, mas não resolveu, se tiver outra dica, agradeço!