.Net 4.6.2 응용 프로그램을 Oracle의 데이터베이스에 연결하기 위해 Microsoft의 System.Data.OracleClient를 Oracle의 자체 관리 ODP.Net (Nuget 패키지, 버전 12.2.11)로 마이그레이션하고 있습니다. 나는 오라클 클라이언트 (11gR2)를 설치하고 구절을 사용하여 참조를 변경하고, 이름을 입력하는 등 코드는 거의 동일합니다. 그러나 이전 마이 그 레이션 코드가 아주 행복하게 연결되지만 마이그레이션 후는 연결되지 않습니다. 대신은 OracleException왜 Managed ODP.Net에서 SERVICE_NAME을 요구합니까?
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA.
tnsnames.ora 파일이 동일 던져, 그리고 응용 프로그램의 연결 문자열은 동일하고, 나는 전에 서비스 이름을 지정하는 데 필요한 적이 없다.
TNSNAMES.ORA :
ORACLEDBSERVER2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = OracleDBServer2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcdb10g)
(SERVER = DEDICATED)
)
연결 문자열 :
USER ID=MATTESTNHADMIN;PASSWORD=XXXXX;DATA SOURCE=oracledbserver2
왜 지금은 서비스 이름을 요구하고있다
? CONNECT_DATA 부분에 절을 추가하더라도 (SERVICE_NAME = orcdb10g)
같은 오류가 발생합니다.
그 통찰력에 감사드립니다. 실행 파일 폴더에 tnsnames.ora 파일을 복사하면 트릭이 완료된 것으로 보입니다. 오라클이 왜이 겉으로보기에 무의미한 변화를 도입했는지 알고 싶습니다. 혼란을 피하기 위해 여기에 대한 심볼릭 링크가 필요합니다. –
링크 된 답변에서 언급했듯이,'tnsnames.ora' 파일이 어떻게 발견되는지는 일반적인 방법이 없습니다. 몇 가지 옵션이 있지만 모두 동일한 폴더를 가리켜 야합니다. 심볼릭 링크를 사용해야하는 경우 예. –