질문이 새로 생겼지 만 몇 년 동안 Stackoverflow를 사용 해왔다.하나의 OpenQuery에서 다른 OpenQuery로 변수 목록 전달
나는 서로 이야기하지 않는 두 개의 개별적으로 연결된 서버를 가지고 있습니다. 한 서버에서 SQL로 변수 목록을 가져온 다음 해당 서버의 데이터를 SQL로 가져 오는 최종 목표로 두 번째 OpenQuery에 해당 변수 목록을 전달해야합니다. 하나의 변수에 키를 전달할 수있었습니다. 그러나 문자열 식 OpenQuery 또는 문자열 쿼리를 사용하려고하면 오류가 반환됩니다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까?
현재 쿼리 : 당신이 줄 수있는 모든 지원이 크게 감상 할 수
DECLARE @string VARCHAR(MAX)
, @SQL NVARCHAR(MAX);
SET @string =
'
Select
col1
from
OpenQuery(server1, ''Select col1 from table1 where col2 = '''' a ''''
';
SET @SQL = 'SELECT * FROM OPENQUERY(Server2, ''SELECT * FROM table2 WHERE col1 = ''''' + @string + ''''' '')';
EXEC sp_executesql @string;
.
2008 년 SQL 서버에서 실행되는 SSMS 2012를 사용하고 있습니다. 연결된 두 개의 서버는 원격으로 연결할 수없는 Oracle 서버입니다.
응답 해 주셔서 감사합니다. 원래 실행을 바꿨습니다. 나는 반복을 붙여 넣었습니다. 19. 불행히도 서버 1 (내 인구)에서 약 1 백만 개의 레코드를 반환하고 서버 2 (데이터)에서 데이터를 가져 왔습니다. 내 데이터 서버에 약 1,600 만 레코드가 있습니다 – Dacius
두 개의 Oracle 소스에 대해 MSSQL에서 쉽게이를 수행 할 수있는 방법은 없습니다. 최선의 접근 방식은 Server2에서 호출 할 수있는 proc를 갖는 것입니다. 만약 당신이 절대적으로 MSSQL을 사용해야한다면, Server1에서 #tmp로 select를 실행 한 다음 결과 #tmp 데이터를 Server2에 삽입하여 Oracle 사용자 테이블에 삽입합니다 (인덱싱 됨). 그런 다음 OpenQuery를 통해 Server2에서 선택하고 Server2에있는 새 사용자 테이블로 필터링 할 수 있습니다. – JiggsJedi