programing

ORA-12557 TNS: 프로토콜 어댑터를 로드할 수 없음

padding 2023. 11. 4. 10:17
반응형

ORA-12557 TNS: 프로토콜 어댑터를 로드할 수 없음

저는 .net 4 프레임워크를 대상으로 C# Windows Forms Application을 개발하려고 합니다.프로그램이 Oracle Database에 대해 저장 프로시저를 실행하고 데이터베이스에 대한 연결을 열려고 하면 다음 오류가 발생합니다.

ORA-12557 TNS: 프로토콜 어댑터를 로드할 수 없음

저는 Visual Studio 2012에서 이를 개발하고 있으며 서버 탐색기가 데이터베이스에 성공적으로 연결되도록 했지만 애플리케이션을 통해 이 오류가 계속 발생합니다.

제 기계에 오라클 11g 클라이언트가 두 개 있습니다.하나는 32비트이고 다른 하나는 64비트입니다.저는 다른 애플리케이션에 대해 두 가지가 모두 필요하기 때문에 하나를 제거할 수 없습니다.PATH 변수에서 Oracle 홈 디렉토리의 순서도 변경해 보았습니다.현재 제가 먼저 연결하고 싶은 64비트가 있습니다.

ODP를 사용하여 데이터베이스에 애플리케이션을 연결하고 있습니다.NET 및 64비트 응용 프로그램의 dll을 참조했습니다.

제가 알 수 있는 한 저는 제안 받은 일을 했고 그것을 제대로 작동시키지 못했습니다.누군가 도와준다면 감사하겠습니다.

ORAL_HOME\bin 내부에서 sqlplus 명령을 실행하면 원활하게 작동하므로 ORA-12577 오류는 Windows Environment 또는 Oracle Home PATH와 관련이 있습니다.해당 시스템의 개별 ORACLE_HOME에 둘 이상의 Oracle 설치(예: 데이터베이스 및 동반자)로 인해 창에서 ORACLE_HOME 값이 설정되지 않았습니다. 자세한 내용은 다음 단계를 따르고 솔루션을 얻을 수 있기를 바랍니다.http://www.dba-oracle.com/t_ora_12577.htm

기본적인 문제는 오라클 인스턴트 클라이언트 설치에 응용 프로그램이 필요로 하는 RDBMS 서버 설치에 존재하는 DLL이 누락되어 있다는 것입니다.이것이 Oracle 홈을 client_1에서 db_1로 전환하는 것이 단순히 PATH 문제가 아니라 작동하는 이유입니다.

sqlplus는 두 Oracle 설치에 모두 존재하는 최소 DLL 집합을 사용하기 때문에 어느 상황에서나 작동합니다.

여기 몇 가지 확인할 사항이 있습니다.필요하다면 3번을 시도해보는 것을 잊지 마세요, 그것은 나를 위해 문제를 해결해줍니다!

  1. 모든 Oracle 서비스가 시작되었는지 확인합니다.
  2. 환경변수가 설정되어 있는지 확인합니다(PATH, ORACLE_SID=ORALOCAL, TNS_ADM).IN=C:\Dev\Oracle\product\11.2.0\dbhome\NETWORK\ADMIN)
  3. 경로 환경 변수 값을 다음과 같이 이동합니다. "D:\Dev\Oracle\product\11.2.0\dbhome\bin"은 "D:\dev\Oracle\product\11.2.0\client_32\bin"의 앞에 위치합니다.

피쉬

저는 IIS .net 프로바이더를 사용하고 있습니다.경로에 oracle32보다 oracle64를 먼저 넣음으로써 sqlplus로 문제를 해결할 수 있었습니다.이것은 .net의 문제를 해결하지 못했습니다.저는 oracle32와 oracle64를 사용하는 앱이 있습니다.이 문제를 해결하려면 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE은 \oracle32 홈을 가리키고 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE은 \oracle(64) 홈을 가리켜야 합니다.

언급URL : https://stackoverflow.com/questions/21426915/ora-12557-tnsprotocol-adapter-not-loadable

반응형