当前位置: 动力学知识库 > 问答 > 编程问答 >

c# - 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.

网友答案:

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

网友答案:

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.

网友答案:

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

分享给朋友:
您可能感兴趣的文章:
随机阅读: