2013-09-04 3 views
2

SQL Server 2008에서 DB2로 연결된 서버가 있습니다. 연결된 서버는 Microsoft 드라이버가 아닌 IBM 드라이버를 사용합니다.SQL Server 2008 연결된 서버에서 DB2 저장 프로 시저를 호출하십시오.

그래서이 SQL 서버에서 작동합니다

exec ('call RERTEBT.GET_DEFINITION (69,'''','''')') AT MyLinkedDB2Server 

를 이것은 또한 OPENQUERY를 사용하여 작동합니다 ... 내가 데이터를 반환하는 선택 얻을 수 없다 그러나 다른 테이블

select 
RPMG_ETY_CD, 
    ROW_CU_DATA_IN, 
ROW_EF_DT, 
ROW_XPR_DT, 
RPMG_ETY_NM 
from 
OPENQUERY 
     (MyLinkedDB2Server, 
       'select 
         RPMG_ETY_CD, 
         ROW_CU_DATA_IN, 
         ROW_EF_DT, 
         ROW_XPR_DT, 
         RPMG_ETY_NM 
       from RERTEBT.V1RERRMM') 

에서 다른 데이터를 반환하는 는 DB2 SPROC

이 실패 -

SELECT FLT_DFN_ID, FLT_SRC_DFN_NO, FLT_VRSN_NO, FLT_STAT_CD, FLT_TY_CD, FLT_NAME 
     FROM OPENQUERY (MyLinkedDB2Server, 
         'call RERTEBT.GET_DEFINITION 69,'''','''')') 

SQL Server Linked server에서 DB2 저장 프로 시저를 호출하고 데이터를 반환하는 방법에 대한 아이디어가 있으십니까? 아니면이 작업을 수행 할 수 있습니까? 나는 DB2 can not가 이것을 읽었지만 어떤 실제 문서도 보지 못했다.

덕분에 D

+0

누구든지 아이디어를주십시오. thnks – Doiremik

답변

1

당신이 할 수 있어야 :

EXEC ('{CALL RERTEBT.GET_DEFINITION (69,'''','''')}') AT MyLinkedDB2Server; 

심지어 청소기 통과 변수

EXEC ('{CALL RERTEBT.GET_DEFINITION (?,?,?)}', 69, '', '') AT MyLinkedDB2Server; 
+0

위에서 설명한 @gonatee로 서버 설정을 변경 한 후에 작동합니다. 고맙습니다. –

3

더 조세프의 답변에 대한 설명과를 : 당신은 오른쪽 단추 필요 연결된 서버의 "속성" 클릭 - ""서버 옵션 " 은"RPC "와"RPC 아웃 "오른쪽 창에서 옵션을 TRUE

해야 - 편집 - I (아무런 대답에 돈을 언급 할 수 't 50 rep)

+0

이것은 효과가 있습니다. 고맙습니다! –

관련 문제