Replacing System.Data.OracleClient to Oracle.DataAccess (ODP.NET)

ria picture ria · Sep 21, 2011 · Viewed 30.7k times · Source

I have a project which is using System.Data.OracleClient at the moment and since it is being deprecated so I want to switch to the ODP.NET latest version for Oracle 11g. Please let me know if the following steps would work for me or there are certain other actions required to get it working without any errors:

  • Remove the reference to the SYstem.Data.OracleClient
  • Adding the reference to Oracle.DataAccess dll
  • Replacing OracleType enum with OracleDbType and updating the references to datatypes from VarChar to Varchar2 etc.

Answer

O. Jones picture O. Jones · Sep 21, 2011

You've pretty much got it.

Here's the Oracle writeup I followed when doing this: http://www.oracle.com/technetwork/topics/dotnet/code-154692.html

Two other things to do:

  1. Fix your connection string.

  2. Tell your OracleCommand instances you want to bind your parameters by name rather than position, using OracleCommand.BindByName = true

Suggestion: When you fix your connection string, get rid of any dependence on TNSNAMES.ORA by putting the whole connection string right in your program.