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가 모두 성공했는데...왜 저와 같은 오류가 나는지...
도움부탁드립니다...
오라클이나 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
로 해 보세요.
명령을 MSSQL에서 던지는 것이기때문에.. 또한 MSSQL의 sales나 DB2의 Sales나 같은 칼럼타입과 같은 데이타이기때문에... MSSQL에서 인식할 수 있는 명령을 쓰든, DB2에서 사용되는 명령을 쓰든
오류없이 값이 나와야 하는데..안되는게..문제군요