I have two applications developed in C# .NET that attacks against an Oracle 10g Database, now the client is planning to upgrade the database to an Oracle 18c. One of the applications is a web application and the other is a desktop application. At this moment I am using Oracle.DataAccess.dll and it is working properly. Will my applications keep working properly after the upgrade or should I recompile my applications with another dll?
-
3Best thing you can do is try it out. You'll have better luck, though. if you can upgrade to at least Visual Studio 2010 and target .NET 4.0 so you can use [Oracle.ManagedDataAccess](https://www.nuget.org/packages/Oracle.ManagedDataAccess/), or go all the way to 4.6.1 or .NET Core 2.0 so you can use [Oracle.ManagedDataAccess.Core](https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core/). There are certain things the managed providers don't support, however, such as `OracleDbType.Object`. – madreflection Jan 14 '20 at 06:27
-
1Every time we upgrade our Oracle version we recompile and test on the same DLL version as the DB. This is the best way to ensure compatibility. But it might depend on how tightly coupled you are to the specific Oracle features. You at least need to thoroughly regression test and shouldn't assume. – jason.kaisersmith Jan 14 '20 at 06:32
-
@madreflection `Oracle.ManagedDataAccess`cannot connect to an 10g database, so here it might not be the best option if you like to have a seamless migration. – Wernfried Domscheit Jan 14 '20 at 08:43
-
1@WernfriedDomscheit: The question says that the client is upgrading to 18c. Am I missing something here? I use Oracle.ManagedDataAccess[.Core] with my local 18c XE instance. If they need to support both, yeah, that would be prohibitive but nothing was said about that. – madreflection Jan 14 '20 at 08:45
1 Answers
It depends on the version of your Oracle.DataAccess.dll
. You did not tell us, so please have a look at Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)
If your Database is 10.2.0 then Oracle.DataAccess.dll
version 11.2 and 12.1 should work, otherwise you have to upgrade your Oracle Client.
Note, version of Oracle.DataAccess.dll has to match exactly the Oracle Client. Installing more than one Oracle Client can be a challenge, better remove old versions completely before you install new one.
In case you will install Oracle Client 12.2 or newer have a look at this: SSMA unable to find specified provider
Usually you don't have to recompile your application. If Oracle.DataAccess.dll
is defined in GAC then your application will automatically load the correct version of Oracle.DataAccess.dll
driven by GAC Policies.

- 54,457
- 9
- 76
- 110