Error: The provider is not compatible with the version of Oracle client — oracle-tech

    Forum Stats

  • 3,716,134 Users
  • 2,242,961 Discussions
  • 7,845,841 Comments

Discussions

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Error: The provider is not compatible with the version of Oracle client

84c38874-6c5e-4dac-a3b2-ab446e77fc59
edited February 2019 in ODP.NET

Hi,

I am trying to access Oracle 12.2 Exadata version and a custom database  and read the data. I am using Visual studio 2010 and C# version.

I am getting warning as 'There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference Oracle.DataAcess, Version 4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86, "x86". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architecture between your project and the references, or take a dependency on reference with a processor architecture that matches the targeted processor architecture of your project'

I am able to build and run the application, but trying to access the database, the connection fails with the below error: The provider is not compatible with the version of Oracle client.

Below is the code used:

string oradb = System.Configuration.ConfigurationManager.ConnectionStrings["OraConn"].ConnectionString;  
OracleConnection conn = new OracleConnection(oradb);
conn.Open();

How to fix this?

Answers

  • Alex Keh-Oracle
    Alex Keh-Oracle Posts: 2,753 Employee
    edited February 2019

    These two errors have different root causes.

    The first error is indicative that you are trying to use 64-bit .NET with 32-bit ODP.NET or vice-versa. The bitness of .NET FW and ODP.NET have to match. Once they do, you will no longer see this error.

    The second error is due to using a version mismatch between Oracle Client and ODP.NET. For example, your Oracle Client may be version 12.2, but ODP.NET is version 11.2. This can occur inadvertently when you have multiple Oracle Clients installed on a machine. ODP.NET, like any other DLL, will look for its dependent Oracle Client DLLs. The first ones ODP.NET finds, it will use, but those versions may not match ODP.NET's version. To fix this problem, use the DllPath setting in your .NET config file. Set the value to the bin directory from which your ODP.NET should look for its dependent Oracle Client DLLs.

Sign In or Register to comment.