2011-01-28 4 views
0

제목에서 알 수 있듯이 Oracle의 Pro C에서 주어진 데이터베이스에 어떻게 연결합니까? Oracle 데이터베이스에 대한 연결을 원하지 않지만 다른 데이터베이스에 대한 연결을 원합니다.Pro * C를 사용하여 데이터베이스에 어떻게 연결합니까?

+0

안녕하세요, SO에 오신 것을 환영합니다. 귀하의 질문을 편집하여 두 개의 가까운 표가 있으므로 답변을 얻으려고합니다. 수정 사항이 만족스럽지 않은 경우 자유롭게 롤백하여 직접 수정할 수 있습니다. –

+0

어떤 종류의 Oracle 데이터베이스입니까? 동일한 컴퓨터에서 실행되거나 네트워크를 통해 실행됩니까? –

+0

네트워크를 통해 실행 중입니다. – suvitha

답변

3

당신은 당신의 C 코드에서 exec sql connect 문을 사용

EXEC SQL CONNECT :myUserId IDENTIFIED BY :myPassword AT :myDbName; 
:

EXEC SQL CONNECT :myUserId IDENTIFIED BY :myPassword; 

것은이 아닌 Oracle 데이터베이스에 연결하려면, 당신은 아마 명령의 at 버전을 사용해야합니다

및 요청을 다른 DBMS로 전달할 수 있도록 Oracle에서 데이터베이스 링크를 설정하십시오.

DB2와 같은 DB2는 투명 게이트웨이를 제공하여 ODBC를 거치지 않고도이 기능을 제공 할 수 있습니다. 어떤 DBMS를 대상으로 설정하는지에 따라 설정 방법이 다릅니다.

1

here의 설명서에서 here을 보면 CONNECT 문을 코드에 직접 포함시킬 수있는 것처럼 보입니다.

이 첫 번째 기사를 인용하자면, 단순화 된 연결 명령문은 다음과 같습니다

EXEC SQL CONNECT { :user IDENTIFIED BY :oldpswd | :usr_psw } 
    [[ AT { dbname | :host_variable }] USING :connect_string ] 
     [ {ALTER AUTHORIZATION :newpswd | IN { SYSDBA | SYSOPER } MODE} ] ; 
+0

해당 연결 문에서 필드를 expalin 할 수 있습니까? 확실히 – suvitha

+0

. 호스트 변수를 사용하여 연결하는 간단한 방법은 paxdiablo의 대답을 참조하십시오. 위의 구문은 더 많은 정보를 제공하므로 예를 들어'AT dbname'을 지정하여 비 기본 데이터베이스에 연결할 수 있습니다. 여기서 dbname은 Oracle이 데이터베이스에 지정한 식별자입니다. 'IN SYSOPER'를 끝에 추가하고'IN SYSDBA'를 사용하여 dba로 작동 (SYSOPER) 모드로 연결할 수 있습니다. 예를 들어. 자세한 내용은 첫 번째 문서 링크를 확인하십시오. –

관련 문제