문제

Oracle에 연결하기 위해 System.Data.oracleClient 및 Abstract Base Classes DBConnection, DBCommand (ETC)를 사용하고 있습니다.

연결은 개발 단계에서 잘 작동합니다. 준비 중에 우리는 오류 ORA-12514 : TNS : TNS : 청취자는 현재 Connect Descriptor에서 요청 된 서비스를 모릅니다.

우리의 목표는 TNS 항목없이 연결하고 연결 문자열에 모든 관련 정보를 제공하는 것이 었습니다 (www.connectionstrings.com/oracle#19)

SQL Plus가 스테이징 서버에서 원하는 스키마에 연결되는지 확인할 수 있습니다 (리스너가 듣고 있습니다). SQLPLUS에 연결된 TNS 항목은 구축중인 쿼리 문자열의 모든 자격 증명과 일치합니다.

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;

우리가 놓친 서버에 설치가 있습니까? 우리가 조정할 수있는 것?

모든 도움이 감사합니다.

도움이 되었습니까?

해결책

SID는 서비스 이름이 아닙니다. 서비스 이름은 일반적으로 완전히 자격을 갖춘 데이터베이스 이름이며 SID는 짧은 식별자입니다.

SID는 dbname 인 동안 서비스 이름은 dbname.company.com 일 수 있습니다. 인스턴스에는 실제로 여러 서비스 이름이 관련 될 수 있지만 하나의 SID 만 가질 수 있습니다.

Connect String에서 SID로 Service_Name을 변경하거나 Service_Name 옵션의 서비스 이름을 지정하십시오.

다른 팁

올바르게 기억하면 Oracle 제공 업체 및 OracledBConnection 및 OracledBCommand를 사용하여 전환 할 때까지 같은 문제가 발생했습니다. 일반적인 것들이 모든 경우에 항상 올바른 제공자를 인스턴스화하는 것은 아닙니다.

Microsoft는 System.data.oracleClient를 더 이상 사용하지 않았습니다.이 기사를 참조하십시오. http://blogs.oracle.com/databaseinsider/2009/07/microsoft_deprecates_systemdataoracleclient_net_developers_for_oracle_should_migrate_to_oracle_data_provider_for_net.html

Oracle 클라이언트가 버전 10+ 인 경우 사용할 수도 있습니다. ezconnect (이는 의미합니다 쉬운 연결 명명 방법). 그런 다음 연결 문자열이 다음과 같습니다.

"Data Source=MyHost:MyPort/MyServiceName;User ID=myUserName;Password=myPassword"

결합 오라클 인스턴트 클라이언트, 그것은 Oracle의 사용이 거의 전문적인 느낌을줍니다! ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top