- 3,716,134 Users
- 2,242,961 Discussions
- 7,845,841 Comments
Forum Stats
Discussions
Categories
- 17 Data
- 362.2K Big Data Appliance
- 7 Data Science
- 1.6K Databases
- 479 General Database Discussions
- 3.7K Java and JavaScript in the Database
- 22 Multilingual Engine
- 487 MySQL Community Space
- 5 NoSQL Database
- 7.6K Oracle Database Express Edition (XE)
- 2.8K ORDS, SODA & JSON in the Database
- 417 SQLcl
- 42 SQL Developer Data Modeler
- 184.9K SQL & PL/SQL
- 21K SQL Developer
- 1.9K Development
- 3 Developer Projects
- 32 Programming Languages
- 135.1K Development Tools
- 9 DevOps
- 3K QA/Testing
- 259 Java
- 6 Java Learning Subscription
- 11 Database Connectivity
- 67 Java Community Process
- 1 Java 25
- 9 Java APIs
- 141.1K Java Development Tools
- 6 Java EE (Java Enterprise Edition)
- 153K Java Essentials
- 135 Java 8 Questions
- 86.2K Java Programming
- 270 Java Lambda MOOC
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 10 Java SE
- 13.8K Java Security
- 3 Java User Groups
- 22 JavaScript - Nashorn
- 18 Programs
- 125 LiveLabs
- 31 Workshops
- 9 Software
- 3 Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 4 Deutsche Oracle Community
- 11 Español
- 1.9K Japanese
- 2 Portuguese
Error: The provider is not compatible with the version of Oracle client

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
-
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.