OLE DB Provider for DB2
Microsoft Host Integration Server와 함께 배포되는 Microsoft OLE DB Provider for DB2를 사용하면 SQL Server 분산 쿼리로 DB2 데이터베이스의 데이터를 쿼리할 수 있습니다.
[!참고]
OLE DB 공급자를 설치 및 구성하는 방법은 해당 공급자에 포함되어 있는 설명서를 참조하십시오.
DB2 데이터베이스를 액세스하기 위해 연결된 서버를 만들려면
SQL Server 인스턴스가 실행되는 컴퓨터에 Host Integration Server Client 소프트웨어를 설치하고 OLE DB Provider for DB2 설치 옵션을 선택합니다.
OLE DB Provider for DB2가 쿼리할 DB2 데이터 원본을 액세스하는 데 필요한 연결 문자열을 결정합니다. 연결 문자열을 결정하는 가장 좋은 방법은 Host Integration Server 새 OLE DB 데이터 원본 응용 프로그램을 사용하여 데이터 연결 파일을 작성하는 것입니다. 자세한 내용은 Microsoft Host Integration Server 설명서를 참조하십시오.
provider_name으로 DB2OLEDB를, catalog로 액세스할 데이터가 포함된 DB2 카탈로그의 이름을, provider_string으로 2단계의 연결 문자열을 지정하는 sp_addlinkedserver를 실행하여 연결된 서버를 만듭니다.
다음 예에서는 sp_addlinkedserver를 사용하여 DB2 데이터베이스를 액세스하는 연결된 서버 정의를 만드는 방법을 보여 줍니다.
EXEC sp_addlinkedserver @server = 'DB2SRV', @srvproduct = 'Microsoft OLE DB Provider for DB2', @catalog = 'SEATTLE', @provider = 'DB2OLEDB', @provstr = 'NetLib=SNA;NetAddr=;NetPort=;RemoteLU=SEATTLE;LocalLU=LOCAL; ModeName=QPCSUPP;InitCat=SEATTLE; Default Schema=WNW3XX;PkgCol=WNW3XX;TPName=;Commit=YES; IsoLvl=NC;AccMode=;CCSID=37;PCCodePage=1252;BinAsChar=NO; Data Source=Seattle_WNW3XX'
sp_addlinkedsrvlogin을 실행하여 SQL Server 로그인에서 DB2 로그인으로의 로그인 매핑을 만듭니다.
다음 예에서는 SQL Server 로그인 SQLJoe를 DB2 로그인 DB2Joe로 매핑합니다.
EXEC sp_addlinkedsrvlogin 'DB2SRV', false, 'SQLJoe', 'DB2Joe', 'x894jd03?'
[!참고]
암호는 암호화되지 않은 상태로 전송됩니다. 암호는 디스크, 백업 및 로그 파일에 저장되는 데이터 원본 정의와 스크립트에 표시될 수 있습니다. 따라서 이러한 유형의 연결에는 관리자 암호를 사용하지 마십시오. 사용자의 환경과 관련된 보안 지침에 대해서는 해당 네트워크 관리자에게 문의하십시오.
이전 단계를 마친 후에는 연결된 서버 이름 DB2SRV를 네 부분으로 구성된 이름에서 서버 이름으로 사용하거나 OPENQUERY 함수의 linked_server로 사용할 수 있습니다. 예를 들면 다음과 같습니다.
SELECT *
FROM DB2SRV.SEATTLE.WNW3XX.DEPARTMENT
또는
SELECT *
FROM OPENQUERY(DB2SRV, 'SELECT * FROM SEATTLE.WNW3XX.EMP_ACT')
DB2 데이터 원본에 대한 분산 쿼리에 NULL 비교가 포함된 경우 같음(=), 보다 큼(>) 또는 보다 작음(< )과 같은 비교 연산자 대신 ISNULL이나 IS NOT NULL을 사용합니다. 또한 테이블의 특정 열이 NULL이거나 기본값을 가질 수 있는 경우에도 INSERT 문은 테이블의 모든 열에 대해 값을 제공해야 합니다.