복붙노트

[SQL] 어떻게 SQL 2000/2005에 Oracle 데이터베이스에 당신에게 설정 연결된 서버를합니까?

SQL

어떻게 SQL 2000/2005에 Oracle 데이터베이스에 당신에게 설정 연결된 서버를합니까?

나는 로컬 SQL 서버에 원격 Oracle 데이터베이스에서 복사 테이블,하지만이 설정에 연결된 서버로 Oracle 데이터베이스에 대한 연결을 원하는 DTS 패키지를 작성하고 실행할 수입니다.

DTS 패키지는 현재 다음과 같은 특성을 가진 Oracle 용 Microsoft OLE DB 공급자를 사용합니다 :

어떻게 위에 정의 된 데이터 소스를 사용하여 Oracle 데이터베이스에 연결된 서버를 설정 가야합니까?

해결법

  1. ==============================

    1.내가 설정 다단계 공정 었죠 원격 Oracle 데이터베이스에 연결된 서버에 수 있었다 :

    내가 설정 다단계 공정 었죠 원격 Oracle 데이터베이스에 연결된 서버에 수 있었다 :

    1 단계 : 서버에서 Oracle ODBC 드라이버를 설치

    ㅏ. 기본, ODBC, 그리고 SQL * 플러스 (옵션) : 필요한 오라클 인스턴트 클라이언트 패키지를 다운로드

    비. \ 오라클 : SQL 서버, 일반적으로 C의 로컬 디렉토리에 패키지의 압축을 풉니 다. 이것은 C와 같은 [디렉토리] 발생한다 :이 답변의 나머지 부분에서 참조 [디렉토리]의 값을 될 것입니다 \ 오라클 \ instantclient_10_2를.

    씨. 텍스트 파일을 다음을 포함하는 인스턴트 클라이언트 [디렉토리] 내 이름이 tnsnames.ora를 만들기 :

    OracleTnsName = 
    (
      DESCRIPTION=
      (
        ADDRESS = (PROTOCOL=TCP)(HOST=10.1.3.42)(PORT=1521)
      )
      (
        CONNECT_DATA = (SERVICE_NAME=acc)
      )
    )
    

    참고 : 실제 HOST, PORT 및 SERVICE_NAME은 당신에 대한 연결을 설정하는 오라클 서버에 따라 달라집니다. 이 정보는 종종 청중 아래 오라클 네트워크 클라이언트 도구를 사용하여 찾을 수 있습니다.

    OracleTnsName 당신이 Oracle 데이터 소스에 할당하려는 이름이 될 수 있으며, 시스템 DSN 설정할 때 사용됩니다. 원하는 경우 같은 tnsnames.ora 파일에서 여러 TNS 이름을 정의하기 위 또한 구문을 사용할 수 있습니다.

    디. 시스템 PATH 환경 변수에 [디렉토리]를 추가합니다.

    이자형. [디렉토리]의 값이 TNS_ADMIN라는 새 시스템 환경 변수 만들기

    에프. 오라클 ODBC 드라이버를 설치하려면 [디렉토리] \ odbc_install.exe 유틸리티를 실행합니다.

    지. 당신이 SQL 서버를 재부팅하지만, 필요하지 않을 수 있습니다 것이 좋습니다. 또한, 당신은 SQL 서버와 SQL 에이전트 사용자 ID에 대해이 디렉토리에 보안 권한을 부여 할 수 있습니다.

    2 단계 : Oracle ODBC 드라이버를 사용하는 시스템 DNS 만들기

    ㅏ. ODBC 데이터 원본 관리자 도구를 엽니 다. [관리 도구 -> 데이터 원본 (ODBC)]

    비. 시스템 DSN 탭을 선택하고 추가 버튼을 선택합니다.

    씨. 드라이버 목록에서 instantclient {버전}에서 오라클을 선택합니다. (예를 들어, '오라클 instantclient 10_2에서') 다음 마침 버튼을 선택합니다.

    디. 다음을 지정합니다 :

    이자형. 연결 테스트 버튼을 선택합니다. 당신은 {오라클 사용자 암호를} 제공하라는 내용의 메시지가 나타납니다. 모두가 잘된다면 테스트는 성공합니다.

    3 단계 : Oracle 데이터베이스에 SQL에 연결된 서버 만들기

    SQL 서버에서 쿼리 창을 열고 다음을 실행합니다 :

    EXEC sp_addlinkedserver 
         @server        = '{Linked Server Name}'
        ,@srvproduct    = '{System DSN Name}'
        ,@provider      = 'MSDASQL'
        ,@datasrc       = '{System DSN Name}'
    
    EXEC sp_addlinkedsrvlogin 
         @rmtsrvname    = '{Linked Server Name}'
        ,@useself       = 'False'
        ,@locallogin    = NULL
        ,@rmtuser       = '{Oracle User Name}'
        ,@rmtpassword   = '{Oracle User Password}'
    

    참고 : {연결된 서버 이름}는 오라클 서버를 참조 할 때 사용하기 원하는 이름을 사용할 수 있지만, {시스템 DNS 이름} 이전에 만든 시스템 DSN의 이름과 일치해야합니다.

    은 {오라클 사용자 이름} 시스템 DSN에 사용되는 사용자 ID와 동일해야하고, {오라클 사용자 암호} 성공적으로 ODBC 연결을 테스트하는 데 사용 된 것과 동일해야합니다. 오라클은 서버 문제를 연결 문제 해결에 대한 자세한 내용은 KB 280106를 참조하십시오.

    오라클 연결된 서버 쿼리

    당신이 통과 쿼리에 BY 절 ORDER를 지정하는 경우 통과 오라클에 쿼리가 연결된 서버를 실행하지만, 매우 큰 레코드에 대해 당신이 ORA-01652 오류 메시지가 나타날 수 있음을 인식 할 OPENQUERY를 사용할 수 있습니다. 통과 쿼리 외부 SELECT 문에서 ORDER BY 절을 이동 나를 위해이 문제를 해결했다.

  2. ==============================

    2.저도 같은 문제가 있었다. 나는 시간 동안 마이크로 소프트와 전화, 그리고 그들은 해결책을 가지고 있지 않았다. 그 "연결 시간 초과"설정 아무도 나에게 도움이되지 않습니다.

    저도 같은 문제가 있었다. 나는 시간 동안 마이크로 소프트와 전화, 그리고 그들은 해결책을 가지고 있지 않았다. 그 "연결 시간 초과"설정 아무도 나에게 도움이되지 않습니다.

    이를 해결하기 위해, 나는 단지 하나의 열에서 하나의 행에 2 분마다 시간을 업데이트하는 시저를 실행하는 DTS 작업을 만들었습니다. 그럼 설치 SQL에서 오라클, 매 3 분, 그 하나의 세포 변화를 복제 할 예정 SQL 서버와 오라클 사이의 복제. 그것은 연결이 살아 유지!

  3. from https://stackoverflow.com/questions/307636/how-do-you-setup-a-linked-server-to-an-oracle-database-on-sql-2000-2005 by cc-by-sa and MIT license