2016-11-08 3 views
1

인 경우 연결 번호는 9.1.131.0입니다.Devart dotConnect Express for Oracle 서비스 이름이

서비스 이름이있는 Oracle 12 DB에 연결하려고합니다. 로그인 (pw) 서버가 있지만 OracleConnectionStringBuilder에 서비스 이름이나 포트를 추가 할 수 없습니다.

데이터베이스에 서비스 이름으로 어떻게 연결합니까?

Oracle.ManagedDataAccess를 사용하면 문제가 발생할 수 있지만 성능 문제로 인해 Devart 드라이버가 더 잘 작동하는지 테스트하고 싶습니다.

종류

+1

대부분 성능이 변경되지 않습니다. 어쨌든, 연결 문자열은 무엇이며 오류는 무엇입니까? –

+0

{ "키워드는 지원되지 않습니다 : '서비스 이름'."} $ "사용자 ID = {myCSB.UserId}; 암호 = {myCSB.Password}; 서버 = {호스트}; ​​서비스 이름 = serviceName}; 포트 = 1521; – k4yaman

+1

DevArt가'서버, 서비스 이름, 포트 '를 지원하는지 모르겠습니다. 대개 이것은'tnsnames.ora' 파일의 별명으로 정의됩니다. 대신 '데이터 소스'를 사용해보십시오. –

답변

0

그래서 이것은 나의 결론이다. 예외에서
인용구 : 도움을
"Express Edition doesn't support Direct mode. Do not use Direct parameter of connection string. Refer to dotConnect for Oracle editions matrix."

감사합니다.

친절한 답변

+0

잘 모름 성능 문제는 무엇입니까?하지만 직접 모드에 대한 제한 사항의 열거를 확인하면 그 중 몇 가지가 성능을 저하시킬 수 있습니다. 캐싱 또는 배열 바인딩에 대한 지원 누락. –

1

대신 Service NameSID을 시도 간주한다. 나는이 하나를 발견 Using Direct Mode

SID ** 시스템 식별자 (글로벌 데이터베이스 이름)

이 ** 서비스 이름 연결 문자열 매개 변수 대신 SID 사용할 수 있습니다,하지만, 직접 모드에서 만 연결할 수 있습니다 (RAC는 지원되지 않음). 나이 들어

작동 :

var str = new DbConnectionStringBuilder(false); 
str.Add("Data Source", db); 
str.Add("User ID", user); 
str.Add("Password", pw); 
var con = new Devart.Data.Oracle.OracleConnection(str.ConnectionString); 
con.Open(); 

또한 tnsnames.ora 파일, 예를 들어,에서 별칭을 검색하는 대신 데이터 소스로 전체 연결 문자열을 넣을 수 있습니다 내 사용자가 오라클 클라이언트 또는 설치 패키지보다 10 메가 바이트 설치하지 않기 때문에

가 오라클에 대한 Devart dotConnect Express가 작동하지 않습니다

string db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={host})(PORT=1521))(CONNECT_DATA=(SERVICE_NAME={serviceName})))"; 
str.Add("Data Source", db); 
+0

이것도 발견되었지만 OracleConnectionStringBuilder 클래스에는이 메소드가 없습니다.IDK 이유 – k4yaman

+1

제네릭 클래스 [DbConnectionStringBuilder] 사용 (https://msdn.microsoft.com/en-us/library/system.data.common.dbconnectionstringbuilder (v = vs.110) .aspx) –