2014-11-18 6 views
0

"ORA-12154 : TNS : 연결 식별자를 해결할 수 없습니다."라는 OracleManaged 드라이버가있는 Oracle 11g DB에 연결하려고하는 Windows Forms 응용 프로그램이 있습니다. 지정됨 ". 그러나 ODP.NET 64 비트 dll을 통해 연결하려고 시도 할 때 연결됩니다 (이 경우 x64로 응용 프로그램을 빌드 할 수 있습니다). 아래 샘플 코드. 두 번째 문으로 토글하면 연결을 여는 동안 오류가 발생합니다.ODP 관리 드라이버를 통해 연결할 수 없습니다.

Oracle.DataAccess.Client.OracleConnection con = new Oracle.DataAccess.Client.OracleConnection(); 
//Oracle.ManagedDataAccess.Client.OracleConnection con = new Oracle.ManagedDataAccess.Client.OracleConnection(); 
con.ConnectionString = "Data Source=v3;User Id=xxx;Password=xxx;"; 
con.Open(); 
MessageBox.Show("Done"); 
con.Close(); 

설정이 누락 되었습니까? 심지어 manaed ODP (64 비트)와 함께 제공된 configure.bat로 시도했습니다.

+0

이 오류 메시지가 표시되지 않으면 해당 오류 메시지가 표시됩니다. 아마도 x64 버전을 테스트했을 때 LAN 연결이 끊어 졌을 것입니다. OracleManaged 드라이버는 x86과 x64 모두에서 작동합니다. –

+0

주의 Oracle Managed 드라이버에 오류가 있습니다. 우리는 11 개월 이래로 존재하는 버그를 10 개월 전에보고했고, 우리가 그 버그에 의존하지 못하도록했습니다. 최근 1216 년 중반에 계획되어있는 12.2에서 해결해야 할 팁이 있습니다. – menssana

답변

-1

bin 폴더에 tnsnames.ora 파일을 복사하여이 작업을 수행했습니다. 관리되는 드라이버가 올바른 tnsname.ora 파일을 찾을 수없는 것 같습니다.

+0

이것은 해결책이 아닙니다. TNSNAMES.ora를 복제하면 그에 따라 유지 관리가 어려워 질 것입니다. – menssana

1

이유는 간단하기 때문에 관리 대상 드라이버는 TNSNAMES.ORA를 어디에서 찾을 수 있는지 알지 못합니다. 오라클은 환경 변수에 의존한다고 말합니다. 여기에서 TNS_ADMIN 환경 변수를 TNSNAMES가 들어있는 폴더로 설정하면 모든 것이 완벽하게 작동합니다. 역의 TNSNAMES.ora 인스턴스가 여러 개 없으므로이 솔루션이 가장 좋습니다 ...