16

I have made a desktop app Setup that connects with remote Oracle 10g Database. When I install Setup on remote machine and run my application then I get following error:

system.data.oracleclient requires oracle client software version 8.1.7 or greater

It works well on my Development machine.

Volatil3
  • 14,253
  • 38
  • 134
  • 263
  • Sounds like you need to make sure the remote machine you're installing your app on has a current version of the Oracle client runtimes! – paulsm4 Oct 14 '13 at 05:35
  • Possible duplicate of [System.Data.OracleClient requires Oracle client software version 8.1.7 or greater](http://stackoverflow.com/questions/7832208/system-data-oracleclient-requires-oracle-client-software-version-8-1-7-or-greate) – Kevin Panko May 17 '16 at 19:56

8 Answers8

19

It is a security issue, so to fix it simply do the following:

  1. Go to the Oracle Client folder.
  2. Right Click on the folder.
  3. On security Tab, Add "Authenticated Users" and give this account Read & Execute permission.
  4. Apply this security for all folders, Subfolders and Files (IMPORTANT).
  5. Don't Forget to REBOOT your Machine; if you forgot to do this you will still face the same problem unless you restart your machine.

http://blogs.msdn.com/b/fabdulwahab/archive/2011/11/13/system-data-oracleclient-requires-oracle-client-software-version-8-1-7-or-greater.aspx

Kevin Panko
  • 8,356
  • 19
  • 50
  • 61
Javysk
  • 381
  • 2
  • 16
  • 2
    I had the same issue in a Virtual Machine, I did the changes and it worked fine without reboot! – Williew Oct 05 '15 at 13:57
9

The error message is pretty self-explanatory: your application needs the Oracle Client installed on the machine it's running on. Your development PC already has it. Make sure your target PC has it, too.

Edit: The System.Data.OracleClient namespace is deprecated. Make sure you use the driver native to your database system, that would be ODP.NET from Oracle.

nvoigt
  • 75,013
  • 26
  • 93
  • 142
  • But I did not include it's assembly in Setup. Why is it still saying? – Volatil3 Oct 14 '13 at 05:48
  • I don't get your question. Your application IS on the target PC. Your application throws an error about needing Oracle Client installed. Oracle client obviously IS NOT on the target PC. You will need to change that. – nvoigt Oct 14 '13 at 05:58
  • I embedded the required Assembly in my Setup and it now copied on client machine too but it is still giving error. Is it like copying only will not work and I will have to isntall this assembly too? – Volatil3 Oct 14 '13 at 06:13
  • What assembly did you copy? The Oracle client from Oracle? We are not talking about System.Data.OracleClient here, we are talking about the Oracle Client installation, an installer provided by Oracle Corporation. – nvoigt Oct 14 '13 at 07:44
  • Only **System.Data.OracleClient** that was Referenced in my Project – Volatil3 Oct 14 '13 at 07:49
  • I'm not sure if there is a language barrier because the error message is plain-englisch-in-your-face and I'm trying to tell you the same all over again in different words: The target machine needs the Oracle client installed. NOT System.Data.OracleClient, but the real thing from Oracle that you have installed on your developer machine as well. – nvoigt Oct 14 '13 at 07:56
  • 1
    I did get you but my main question was that is there anyway to **embed** it rather than installing file(s) as a separate Setup on client machine?? – Volatil3 Oct 14 '13 at 07:58
  • Maybe you could ask the question you are having directly in a new post. Before you do, consider reading the already existing questions and answers that are related (see sidebar on the right) to avoid duplicates. – nvoigt Oct 14 '13 at 08:19
  • Actually what you suggested worked, though I was not considering it feasible – Volatil3 Oct 14 '13 at 09:40
5

Install Nuget for Oracle.ManagedDataAccess

Make sure you are using header for Oracle:

using Oracle.ManagedDataAccess.Client;

This Worked for me.

yoga Asafe
  • 51
  • 1
  • 1
0

If you have to use the older client, here is my experience.

We are running a 32bit server so the development machines run the 32bit client. We run the 11.1 install, 11.2 gets the error. Once you have installed the 11.2 version you have to manually delete the files Oracle.Web.dll and System.Data.OracleClient.dll from the %windir%\Microsoft.NET\Framework\v2.0.50727, reinstall 11.1, then register the dlls with gacutil.exe.

This fixed the issue with my systems.

Kevin Panko
  • 8,356
  • 19
  • 50
  • 61
0

On your remote machine, System.Data.OracleClient need access to some of the oracle dll which are not part of .Net. Solutions:

  • Install Oracle Client , and add bin location to Path environment varaible of windows OR
  • Copy oraociicus10.dll (Basic-Lite version) or aociei10.dll (Basic version), oci.dll, orannzsbb10.dll and oraocci10.dll from oracle client installable folder to bin folder of application so that application is able to find required dll

On your local machine most probably path to Oracle Client is already added in Path environment variable to there required dll are available to application but not on remote machine

techExplorer
  • 810
  • 7
  • 16
0

Go to C:\app\insolution\product\11.2.0\client_1\BIN and find oci.dll. Right click on it -->Properties -->Under Security tab, click on Edit -->Then Click on Add Button --> Here add two new users with names IUSR and IIS_IUSRS and give them full controls. That's it.

0

After installation of Oracle Client 11.02.04, reboot the server and make sure USERS(Local Computer) is added with Full Control on Root folder for eg WWW

Tested, it worked.

0

This posting is about mostly desktops and this oracle message. I want to talk about server class machines running a dtexec that are throwing this error message. In one case it meant that an installed oracle client instance on a server machine was no longer there, and it had been there for a long time. On the client side we found recently 1/2023 that certain versions of the oracle client 32 bit don't run on a laptop with AMD chips. Downgrading to a lower version of the oracle client 19.x fixed the problem.

renaissanceMan
  • 385
  • 2
  • 7