Oracle용 Microsoft OLE DB 공급자(데이터베이스 엔진)

Oracle용 Microsoft OLE DB 공급자를 사용하면 Oracle 데이터베이스의 데이터에서 분산 쿼리를 사용할 수 있습니다.

Oracle 데이터베이스 인스턴스를 액세스하기 위해 연결된 서버를 만들려면

  1. SQL Server를 실행하는 서버의 Oracle 클라이언트 소프트웨어가 공급자가 요구하는 수준에 있도록 합니다. Oracle용 Microsoft OLE DB 공급자의 경우, Oracle 클라이언트 소프트웨어 지원 파일 버전 7.3.3.4.0 이상 및 SQL*Net 버전 2.3.3.0.4를 필요로 합니다.

  2. SQL Server를 실행하는 서버에 Oracle 데이터베이스 인스턴스를 가리키는 SQL*Net 별칭 이름을 만듭니다. 자세한 내용은 Oracle 설명서를 참조하십시오.

  3. provider_name으로 MSDAORA를, data_ source로 Oracle 데이터베이스용 SQL*Net 별칭 이름을 지정하는 sp_addlinkedserver를 실행하여 연결된 서버를 만듭니다.

    다음 예에서는 SQL*Net 별칭 이름이 OracleDB로 정의된 것으로 가정합니다.

    sp_addlinkedserver 'OrclDB ','Oracle',' MSDAORA','OracleDB'
    
  4. sp_addlinkedsrvlogin을 사용하여 SQL Server 로그인에서 Oracle 로그인으로의 로그인 매핑을 만듭니다.

    다음 예에서는 Oracle 로그인 및 암호로 OrclUsr 및 OrclPwd를 사용하여 3단계에 정의된 연결된 서버에 SQL Server 로그인 Joe를 매핑합니다.

    sp_addlinkedsrvlogin 'OrclDB', false, 'Joe', 'OrclUsr', 'OrclPwd'
    

각 Oracle 데이터베이스 인스턴스에는 빈 이름을 갖는 카탈로그가 하나만 있습니다. Oracle 연결된 서버에 있는 테이블은 OracleLinkedServerName**..OwnerUserName.**TableName 형식의 네 부분으로 된 이름을 사용하여 참조되어야 합니다. 예를 들어 다음 SELECT 문은 OrclDB 연결된 서버에 의해 매핑된 서버의 Oracle 사용자 MARY가 소유하는 SALES 테이블을 참조합니다.

SELECT *
FROM OrclDB..MARY.SALES

Oracle 연결된 서버의 테이블을 참조할 때는 다음 규칙이 적용됩니다.

  • 테이블 및 열 이름을 따옴표 붙은 식별자를 사용하지 않고 Oracle에서 만들었으면 모두 대문자로 된 이름을 사용합니다.

  • 테이블 및 열 이름을 따옴표 붙은 식별자를 사용하여 Oracle에서 만들었으면 이름의 모든 문자에 대해 Oracle에서 이름을 만들었을 때와 같은 대/소문자를 사용합니다.

  • 테이블의 특정 열이 NULL이거나 기본값을 가질 수 있는 경우에도 INSERT 문은 테이블의 모든 열에 대해 값을 제공해야 합니다.

레지스트리 항목

Oracle용 OLE DB 공급자가 Oracle 클라이언트 소프트웨어와 작동하도록 하려면 명령줄에서 레지스트리 파일을 실행해 클라이언트의 레지스트리를 수정해야 합니다. 여러 개의 클라이언트 소프트웨어 인스턴스를 동시에 실행하면 안 됩니다. 다음 표에 나열된 이러한 파일은 MDAC(Microsoft 데이터 액세스 구성 요소) 설치와 동일한 디렉터리 구조에 있습니다. 일반적으로 이 위치는 C:\Program Files\Common Files\System Files\OLE DB입니다.

Oracle 클라이언트

Windows NT 또는 9x

Windows 2000

7.x

mtxoci7x_winnt.reg

mtxoci7x_win2k.reg

8.0

mtxoci80_winnt.reg

mtxoci80_win2k.reg

8.1

mtxoci81_winnt.reg

mtxoci81_win2k.reg