5 Replies Latest reply: Aug 16, 2014 10:49 AM by Alex Keh - Product Manager-Oracle RSS

    Managed ODAC.NET


      I tried to get the oracle ODBC driver working with my application and had major issues with the x64 driver and after working with the 32 bit driver I discovered more the same.  So I am looking into writing a native link in my C# .net application.


      My application is compiling in "Any CPU" and I do not want to change that because of other bigger issues I'll have.


      My understanding with the issues on the x64 code was that numbers were being returned with a much bigger precision than what can be handled.  Will I still have these issues using the x64 ODAC.NET?


      I downloaded the 32bit ODAC.net for visual studio but when I add the reference to the library I get a processor mismatch error.  I found a post on here referring to using the managed odac.net but no link was provided so I did a search and found this:




      But when I click on download the latest odp.net I get a list of the same downloads I saw before:




      What is the path I need to pursue to link your dll into my app and will I still have issues with x64 as I did with the ODBC driver?


      Honestly, with all the libraries I use this one seems to be the worst for compatibility and confusion.  As a developer I shouldn't have to worry about making "work-arounds" for your library to use it.  I should just be able to link and code...


      Thanks for your help!

        • 1. Re: Managed ODAC.NET
          Alex Keh - Product Manager-Oracle

          If you installed the 32-bit ODAC release 12.1 version, the managed ODP.NET will be available. You can use that to avoid all possible conflicts with 32-bit and x64 version. When you add a reference, look for Oracle.ManagedDataAccess.dll. That's the one to use.

          • 2. Re: Managed ODAC.NET

            So will that actually be using the 32bit ODAC in the 64bit app so I don't have to worry about the number precision?


            Also, will just that dll be enough to ship with my package to make connections to oracle or will they have to install the odac client for it to work?

            • 3. Re: Managed ODAC.NET
              Alex Keh - Product Manager-Oracle

              With respect to number precision, I assume you are referring to Oracle NUMBER data types that can store 38 significant digits. That "issue" will always exist since that is a fundamental difference between Oracle NUMBER and .NET Decimal.


              In the end, you will be using ODP.NET, Managed Driver with your 64-bit app. You can't actually use any other part of 32-bit ODAC with your 64-bit app due to the bitness difference, but you can use managed ODP.NET with it.


              Managed ODP.NET does not require the Oracle Client. The 2MB ODP.NET, Managed Driver download is all you need to connect to Oracle DB from .NET.

              • 4. Re: Managed ODAC.NET

                So when I deploy the app, the DLL that gets packaged with it will not be enough; they will have to download the odp.net managed driver?

                • 5. Re: Managed ODAC.NET
                  Alex Keh - Product Manager-Oracle

                  If you use distributed transactions, there's a second DLL to include and a transaction recovery service to install. If you don't need distributed transactions, then the single managed ODP.NET DLL is enough. That single DLL is the managed driver.