I have Oracle9i Release 2 ODAC installed and we are migrating from Microsoft .NET Data Provider for Oracle.
We have some SqlCommand caching implemented, that uses
System.Data.SqlCommandBuilder.DeriveParameters(result) (var result is type of SqlCommand),
but there is no DeriveParameters() method until ODP.NET version 10.
Perhaps anyone has experience using ODP.NET 10.1.XXXXXX or greater with Oracle 9i and has no problems?
You can use ODP.NET R2 for 10g on 9i without problems, as stated in the readme documentation of odp.net R2. I'd go for the R2 version (so 2.10.2.xxx) as it has a native .NET 2.0 build and many bugfixes not present in the 10.1 version. It also is less buggy than the 9.2.0.xxx version.
It will install the 10g client, which can access Oracle databases of version 8i R3 or higher.
You can even use odp.net 11.1.0.6.20 together with Oracle 9i. However use Oracle server 9.2.0.7, not 9.2.0.6 .
Take a look at the following document from Metalink, it might help. It contains a support matrix of ODP Driver Version, Supported Operating System, SQL*Net, RDBMS, .NET Framework, and Visual Studio.
Subject: Oracle Data Provider for .NET (ODP) Supported Configurations
Doc ID: 726240.1
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'm using the oracle.dataaccess.dll when having to query an Oracle DB. But it doesn't work if the user doesn't have an Oracle client installed on his machine. Is it possible to somehow include the Oracle client inside a dll so the user won't have to explicitly install the client?
The managed ODP.net client is exactly what you want. Now that there's a 12c version out, it's a simple single assembly that you can deploy with your application and not have to worry about Oracle installations.
There's also a nuget package that you can use if you don't want to install on your system. That is very painless to get up and running. Here's some links to those:
Main package
Second package to use Entity Framework 6/Code First
You can ship the Oracle Instant Client with your application.
This is a complete Oracle client but it doesn't require installation, it can be used directly.
However, you need to be aware of the following:
The instant client is over 120 MB in size.
You need different versions of the instant client for x86 and x64, bringing the size to about 250 MB.
The advantage of using the instant client is that you don't have to worry about the installed version of the Oracle client. Even if the computer already has an incompatible version installed, your application will work, because it comes with the correct version.
If you're able to pay, I've had fair success with DevArt's DotConnect for Oracle as an alternative to the client provided by Oracle.
It provides a completely managed way of connecting to and querying Oracle, along with Entity framework & nHibernate support and emulation for GUIDs, booleans and a few other datatypes where Oracle lacks support (GUID is raw(16) in Oracle).
All you have to do is ship a single managed DLL with your project.
I finally got it to work by making the Oracle connection string in my app.config and copying all the client DLL's as in this picture:
I just want to make it sure that this ODP.NET is the native provider for oracle design for .net and since when exit's? because some of my partners say that it's pretty new and want to know when was the first release. This all discussion came because they chooses not used entity framework because oracle was not release a native provider for .net in the 2008 and want to check if it's true
Originally the Net Framework 1.1 provided a native Oracle ADO.NET provider in the namespace System.Data.OracleClient, but then Microsoft declared it obsolete and stated that these types are deprecated and will be removed in a future version of the .NET Framework. (But are still here in Net 4.0). In the meantime Oracle build ODP.NET and now this could be considered the official Oracle Net Provider.
You can download it for free here
It comes in 32bit and 64bit versions and, as stated by Oracle, it includes Entity Framework, LINQ, WCF Data Services, and implicit REF CURSOR parameter binding support.
At this link you could read numerous FAQ on this provider
We upgraded our application to .NET 4.0 a while ago, and now need to add the ability to backup SQL Server 2008 databases from the app. However, it doesn't seem that SMO is available for .NET 4. Is there a workaround or better way to perform a database backup (note that our backups need to be user initiated over a website, so we cannot schedule them).
Use BACKUP DATABASE?
Otherwise, try these One, Two
You can still reference SMO from a .NET 4.0 application, even with it targeting the .NET 2.0 framework.
If you get the Mixed mode assembly is built against version 'v2.0.50727' of the
runtime and cannot be loaded in the 4.0 runtime without additional
configuration information. exception, installing the latest version of the SQL Server SDK (SQL Server 2008 R2) should fix it, even if the machine is running an older version of SQL Server e.g. 2005.
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