Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ORA-12557 TNS:protocol adapter not loadable

I am trying to develop a C# Windows Forms Application targeting the .net 4 framework. The program will execute a stored procedure against an Oracle Database and I get the following error when I try to open the connection to the database.

ORA-12557 TNS:protocol adapter not loadable

I am developing this in Visual Studio 2012 and have managed to make the Server Explorer connect to the database successfully, however I keep getting this error through my application.

I have two Oracle 11g clients on my machine. One is 32bit and the other is 64bit. I do need both for different applications so it is not possible to remove one. I have also tried changing the order of the Oracle home directories in the PATH variable. Currently I have the 64bit one first which is the one I would like to connect with.

I am connecting my application to the Database using ODP.NET and have referenced the dll from the 64bit application.

As far as I can tell I have done what has been suggested and have not managed to get it working. If anyone could help it would be appreciated.

like image 510
James Randles Avatar asked Jan 29 '14 09:01

James Randles


3 Answers

The ORA-12577 error is related to Windows Environment or Oracle Home PATH because sqlplus command works smoothly when I execute it inside ORACLE_HOME\bin . Its because of two or more oracle installs (say database and companion) in separate ORACLE_HOMEs on that machine unset the ORACLE_HOME value in your window For Details please follow the following steps and hope so you will get the solution. http://www.dba-oracle.com/t_ora_12577.htm

like image 70
Talha Hanjra Avatar answered Nov 08 '22 03:11

Talha Hanjra


The base problem is that there are DLLs missing in the Oracle instant client installation that exist in the RDBMS server installation that the application requires. This is why switching Oracle homes from client_1 to db_1 works, rather than it being a purely a PATH problem.

sqlplus works in either situation because it uses the minimal set of DLLs which exist in both Oracle installations.

like image 3
Tony Dare Avatar answered Nov 08 '22 03:11

Tony Dare


Here are a few things to check. Dont forget to try #3 if needed, it fix the problem for me!

  1. Make sure all Oracle services are started
  2. Make sure environment variables are set (PATH, ORACLE_SID=ORALOCAL, TNS_ADMIN=C:\Dev\Oracle\product\11.2.0\dbhome\NETWORK\ADMIN)
  3. Try shifting the Path environment variable values like so: “D:\Dev\Oracle\product\11.2.0\dbhome\bin” to be before the “D:\dev\Oracle\product\11.2.0\client_32\bin” in the order

Fissh

like image 2
gadildafissh Avatar answered Nov 08 '22 03:11

gadildafissh