MSSQL2K) OLEDB provider for DB2를 이용한 DB2연동에서 문제

김건우   
   조회 10696   추천 0    

다름이아니라...

Microsoft SQL Server  2000 - 8.00.2187 (Intel X86)  Mar  9 2006 11:38:51 
Copyright (c) 1988-2003 Microsoft Corporation  Enterprise Edition on Windows NT 5.2
(Build 3790: Service Pack 2) 인 가운데 윈도용 DB2를 설치하고..

Linked Server와 DTS를 완료한 후...

다음과 같이 쿼리를 하려하니, 오류가 발생하여 문의드립니다.

(1) 사전작업 :

MSSQL2K와 DB2를 ODBC로 시스템 DNS로 등록해둔 후
MSSQL2K에서 DB2를 Linked Server등록( 뷰, 테이블 목록확인OK!)


(2) 진행작업 :

DTS로 MSSQL2K의 PUBS 디비의 SALES 테이블 데이타를 DB2의 SAMPLE이라는 디비
안의 SALES라는 테이블에 데이타 전송 OK! (테이블내 컬럼타입은 동일)

(3) 조회작업 및 에러내용 :
(조회는 MSSQL 쿼리분석기 상에서 실시)
SELECT'SALES_MS' ,  COUNT(*) , GETDATE()
FROM PUBS.DBO.SALES
UNION ALL
SELECT'SALES_DB2', COUNT(*) , GETDATE()
FROM DB2_LOCAL..ADMINISTRATOR.SALES

결과내용(에러내용) :
서버: 메시지 7318, 수준 16, 상태 1, 줄 1
OLE DB 공급자 'IBMDADB2.DB2COPY1'이(가) 잘못된 열 정의를 반환했습니다.
OLE DB 오류 추적 [Non-interface error:  OLE/DB provider returned an invalid column definition.].



Linked Server와 DTS가 모두 성공했는데...왜 저와 같은 오류가 나는지...

도움부탁드립니다...
짧은글 일수록 신중하게.
어린왕자 2009-11
DB2에 GETDATE() 함수가 지원 되지 않아서 그런것 같습니다.
오라클이나 DB2의 경우 sysdate를 사용합니다.
SELECT'SALES_MS' ,  COUNT(*) , GETDATE() AS today_dt 
FROM PUBS.DBO.SALES
UNION ALL
SELECT'SALES_DB2', COUNT(*) , sysdate AS today_dt
FROM DB2_LOCAL..ADMINISTRATOR.SALES
로 해 보세요.
     
김건우 2009-11
마찬가지네요...

명령을 MSSQL에서 던지는 것이기때문에.. 또한 MSSQL의 sales나 DB2의 Sales나 같은 칼럼타입과 같은 데이타이기때문에... MSSQL에서 인식할 수 있는 명령을 쓰든, DB2에서 사용되는 명령을 쓰든
오류없이 값이 나와야 하는데..안되는게..문제군요


QnA
제목Page 4109/5724
2014-05   5238054   정은준1
2015-12   1763761   백메가
2009-11   7930   방o효o문
2009-11   11678   김용설
2009-11   8247   새로운차원
2009-11   9792   김상일
2009-11   6380   초리짱
2009-11   15278   qkrqkr2
2009-11   13035   임민규
2009-11   7397   마테오폴
2009-11   8864   김도균
2009-11   6578   푸릉이
2009-11   8540  
2009-11   6915   박상범
2009-11   7566   중복닉넴
2009-11   6365   로그아웃
2009-11   10176   문병채
2009-11   11477   agegold
2009-11   7589   푸릉이
2009-11   10197   씨형
2009-11   16484   레인보우7
2009-11   7247   송승화