Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the minimum client footprint required to connect C# to an Oracle database?

Tags:

c#

oracle

client

I have successfully connected to an Oracle database (10g) from C# (Visual Studio 2008) by downloading and installing the client administration tools and Visual Studio 2008 on my laptop.

The installation footprint for Oracle Client tools was over 200Mb, and quite long winded.

Does anyone know what the minimum workable footprint is? I am hoping that it's a single DLL and a register command, but I have the feeling I need to install an oracle home, and set various environment variables.

I am using Oracle.DataAccess in my code.

like image 236
Jonathan Avatar asked Sep 16 '08 09:09

Jonathan


People also ask

What is the minimum capacity of a hard drive for a client machine?

At least 7.5 GB of free disk storage for a typical installation.

What are minimum computer requirements for a software program?

1 GHz processor or faster 32-bit (x86) or 64-bit (x64). 1 GB of RAM for 32-bit or 2 GB of RAM for 64-bit. 16 GB of hard drive space for 32-bit or 20 GB for 64-bit. DirectX 9 graphics device with WDDM 1.0 or higher.

What are the minimum requirements to install Windows 2022?

Windows Server 2022 hardware requirements and limitations Both require a 1.4 GHz, 64-bit CPU and 512 MB of RAM; for the Desktop Experience GUI-based version, the system needs 2 GB of RAM. Additionally, 32 GB of disk space are required.


2 Answers

You need an Oracle Client to connect to an Oracle database. The easiest way is to install the Oracle Data Access Components.

To minimize the footprint, I suggest the following :

  • Use the Microsoft provider for Oracle (System.Data.OracleClient), which ships with the framework.
  • Download the Oracle Instant Client Package - Basic Lite : this is a zip file with (almost) the bare minimum. I recommend version 10.2.0.4, which is much smaller than version 11.1.0.6.0.
  • Unzip the following files in a specific folder :
    • v10 :
      • oci.dll
      • orannzsbb10.dll
      • oraociicus10.dll
    • v11 :
      • oci.dll
      • orannzsbb11.dll
      • oraociei11.dll
  • On a x86 platform, add the CRT DLL for Visual Studio 2003 (msvcr71.dll) to this folder, as Oracle guys forgot to read this...
  • Add this folder to the PATH environment variable.
  • Use the Easy Connect Naming method in your application to get rid of the infamous TNSNAMES.ORA configuration file. It looks like this : sales-server:1521/sales.us.acme.com.

This amounts to about 19Mb (v10).

If you do not care about sharing this folder between several applications, an alternative would be to ship the above mentioned DLLs along with your application binaries, and skip the PATH setting step.

If you absolutely need to use the Oracle provider (Oracle.DataAccess), you will need :

  • ODP .NET 11.1.0.6.20 (the first version which allegedly works with Instant Client).
  • Instant Client 11.1.0.6.0, obviously.

Note that I haven't tested this latest configuration...

like image 156
Mac Avatar answered Oct 15 '22 11:10

Mac


I use the method suggested by Pandicus above, on Windows XP, using ODAC 11.2.0.2.1. The steps are as follows:

  1. Download the "ODAC 11.2 Release 3 (11.2.0.2.1) with Xcopy Deployment" package from oracle.com (53 MB), and extract the ZIP.
  2. Collect the following DLLs: oci.dll (1 MB), oraociei11.dll (130 MB!), OraOps11w.dll (0.4 MB), Oracle.DataAccess.dll (1 MB). The remaining stuff can be deleted, and nothing have to be installed.
  3. Add a reference to Oracle.DataAccess.dll, add using Oracle.DataAccess.Client; to your code and now you can use types like OracleConnection, OracleCommand and OracleDataReader to access an Oracle database. See the class documentation for details. There is no need to use the tnsnames.ora configuration file, only the connection string must be set properly.
  4. The above 4 DLLs have to be deployed along with your executable.
like image 20
kol Avatar answered Oct 15 '22 11:10

kol