?
Solved

System.Data.OracleClient requires Oracle client software version 8.1.7 or greater

Posted on 2014-10-14
16
Medium Priority
?
4,540 Views
Last Modified: 2014-10-20
Greeting,

I have a C# application which updating records in Oracle 11g database. It was working fine on another testing environment which running WinXP. After I copied to another XP machine, I got error "System.Data.OracleClient requires Oracle client software version 8.1.7 or greater". The old machine is running Oracle9 and the new one is running Oracle10. In the new Xp machine I can use sqlplus to log into the database.

I saw there are solutions for folder permission online. I gave Authenticated user all the permission needed. but still got the same error.

Please suggest.
0
Comment
Question by:mrong
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 8
16 Comments
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 40380832
When you installed the Oracle Client, did you also install ODP.Net?  This isn't an automatic install.

I also expect you'll need to recompile the application.  ODP.Net doesn't like mixing versions.  If you compiled with a 9i version, you will likely need to recompile with the 10g version.

Although that shouldn't generate the error you are now getting, it will likely be the next error you receive.

There is a good discussion about that one in a previous question here:
http://www.experts-exchange.com/Database/Oracle/Q_27020817.html
0
 

Author Comment

by:mrong
ID: 40380861
ODP.Netis Oracle data provider for .net?
Thanks
0
 

Author Comment

by:mrong
ID: 40380873
Oracle data provider for .net is installed. thanks
0
NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 40380882
Yes.
0
 

Author Comment

by:mrong
ID: 40381681
In the app references, I found the following info for system.data.oracleclient
runtime version: v2.0.50727
version: 2.0.0.0

in the property of my C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727, I found the following
File version: 2.0.50727.3082

Does it mean they match?

Thanks.
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 40381942
Search your oracle installation folder for Oracle.DataAccess.dll.

What is the version of that file?
0
 

Author Comment

by:mrong
ID: 40381945
10.2.0.100
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 40381968
I believe system.data.oracleclient is the Microsoft client file that has been deprecated and shouldn't be used.

Do you have a reference to Oracle.DataAccess in C:\WINDOWS\Microsoft.NET somewhere?

If not, I don't believe the file has been properly registered in the GAC.

If this is a .Net 2.0 project, take a look at:
http://msdn.microsoft.com/en-us/library/dkkx7f79(v=vs.80).aspx

You might also try copying Oracle.DataAccess.dll to the bin folder of the app.
0
 

Author Comment

by:mrong
ID: 40382008
how to check if I have a reference to Oracle.DataAccess in C:\WINDOWS\Microsoft.NET somewhere?
Thanks.
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 40382012
Windows Explorer and 'Search'?
0
 

Author Comment

by:mrong
ID: 40382023
searched and nothing found.
If I copy Oracle.DataAccess.dll to the bin folder of app, Do I also need to add it to the app references in VS?
Thanks.
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 40382031
If you have the project available in VS, then just recompile it using the new drivers.  Yes, you need to add the reference to the version you currently have installed.
0
 

Author Comment

by:mrong
ID: 40382058
tried but no luck.
Would it help if I removed Oracle10g client and install Oracle 9g client?
The old machine is running oracle 9g client....
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 40382066
Since 9i and 10g are no longer supported I guess it doesn't make any difference which one you use.

I would always encourage you to use the newest version you can.

What version of the database is this app connecting to?
0
 

Author Comment

by:mrong
ID: 40382073
The database is Oracle 11g and the app is running on a win2003 server which has Oracle 9 client installed.
I want to copy the app to my winXP testing machine and modify the code then copy back.

Thanks.
0
 
LVL 77

Accepted Solution

by:
slightwv (䄆 Netminder) earned 2000 total points
ID: 40382083
>>The database is Oracle 11g

I would forget the 9i and 10g clients and go with the new Oracle Managed Driver.

This doesn't require any Oracle Client install.

I've been experimenting with it since it was released and am happy with it so far.

For 32Bit apps:
http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html

ODAC 12c Release 2 (12.1.0.1.2)          [Released December 20, 2013]
Download the ODP.NET, Managed Driver Xcopy version only
0

Featured Post

Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Configuring and using Oracle Database Gateway for ODBC Introduction First, a brief summary of what a Database Gateway is.  A Gateway is a set of driver agents and configurations that allow an Oracle database to communicate with other platforms…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
This video shows how to recover a database from a user managed backup
Suggested Courses

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question