My App is written for Oracle 10. It uses System.Data.OracleClient
Is there the same component for Oracle 11 under x64 System?
No, since 11 x64 it's called Oracle.DataAccess..
you should recompile everything under x64 to be able to exchange data to Ora.
It you deal with Ora11 x32, then System.Data.OracleClient will work fine.
Related
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?
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.
I have a windows service that is build targeting .net framework 4. It is a 32 bit application. It uses a MS Access database at the back end for scheduling. At the same time it interface with lot of RDBMS. This has been in use since last 7 years and more than 8000 installs have being successfully running. Recently I had to support interfacing one RDBMS. The native .net provider for this database is available only with .net framework 4.5.
So to be compatible with this newer database, I compiled my service against 4.5. I wend ahead with this change, as I was able to run this application on my development machine which does not have 4.5 installed. I checked this as 8000 machines where we already have this installed might not have 4.5 installed and would create problems. But as it worked on my development machine, I went ahead with the change.
After the updates were pushed, we started getting OleDbException "System resources exceeded" while querying underlying MS Access database. NOTE : The machine where we encountered the above exception are mostly using windows server OS(2008, 2012) and do not have 4.5 installed. The code where we are encountering this exception has not been changed for years. Also where we have encountered this issue we are not actually interfacing with the newer database.
Also apart from the newer database provider assembly that is compiled against 4.5 I am not using any 4.5 specific issue.
So I suspect this issue is caused by migration to 4.5??
I am new in Mono and need to deploy my .Net web application on Linux and Oracle as database
When running my web application, I am getting intermittent error :
Could not allocate new OCI Handle of type Statement
However when deployed to Windows this problem does not occur
Has anyone encounter this problem before?
Going through the internet says that I need commercial Oracle Client provider. Is this true? Or is my Mono version outdate? Thanks in advance
Ubuntu 12.04 LTS
Mono 2.10.8.1
ASP.NET 4.0
Oracle XE 10.2.0 installed in Ubuntu 12.04
Oracle Database 11G Enterprise Edition Release 11.2.0.1.0 - 64bit installed in Oracle Linux Server
I am developing application which uses ODP.NET to connect to Oracle DB. I would like to have one version for both 32bit and 64bit machines. The problem is that I couldn't figure out how to build projetc with anycpu target, seems it requires the target to be the same as ODP driver version. So it means that I need to have to versions of the same application one for 32bit and other for 64bit. But the same was not problem while using MS .NET Oracle client (System.Data.OracleClient). Is there a way to have the same behavior using ODP.NET as on MS .NET client?
Just update few years later: Oracle released managed ODP.NET client, so there's no need to bother with x64/x86 in .NET applications any more. You can find more information on Oracle website: http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
The root cause is the ODP.NET's reliance on native OCI DLLs, which of course cannot be "Any CPU".
Theoretically, ODP.NET could detect the "bit-ness" of the current execution in the .NET code and then dynamically load either 32-bit or 64-bit native DLLs accordingly, but that's not how it is currently implemented.
Oracle corporation is currently in the process of implementing a fully managed provider. But until then, we are stuck with having to do separate builds for each "bit-ness".
The default option for any C# project is it will work on both x64 and x86 operating systems.
So it means that I need to have to versions of the same application
one for 32bit and other for 64bit. But the same was not problem while
using MS .NET Oracle client (System.Data.OracleClient).
This is expected....You need to release a x86 version and a x64 version, please take note, x86 application cannot reference a x64 assembly and vice-versa.
The reason the Microsoft reference was different was because its part of the .NET Framework by default.
I cannot download the file where I am at, I do believe that, ODP.NET has a x86 assembly and a x64 assembly.
The correct way is to release a x86 version and a x64 version of your program.
ODP.NET is specifically built for either 32-bit or 64-bit platform. They could have built a single library for AnyCPU which would allow it to be used in a 32-bit or 64-bit process. However, as Branko Dimitrijevic alluded to, the ODP.NET managed dll uses native libraries behind the scenes. Native libraries are platform-specific; thus requiring Oracle to build separate ODP.NET library for each platform. There is no alternative.
Does System.Data.OracleClient support oracle 11g? If yes which version? The .Net appplication is presently running on 32bit server. We will be upgrading to 64 bit. Will System.Data.OracleClient support 64 bit too? Version of System.Data.OracleClient in use at present 2.0.0.0 with oracle 9i.
Difficult question, according to this link it does not and it will not in the future either. However, I'm currently using System.Data.OracleClient to connect to an 64bit 11g server and I've got Oracle's 11g client tools installed and I have no problems.
System.Data.OracleClient will be deprecated soon. If you think about future you better go on this one Oracle Data Provider for .NET