2014-07-14 7 views
2

을 연결 2012 년오라클은 내가 마이크로 소프트 SQL 서버에서 연결된 오라클 11g 서버가 서버 최고 N 구문

내가 오라클에서 큰 링크 된 데이터 집합을 검색하기 위해 노력하고 있어요 그래서 난 그냥 처음 100을 얻으려면 그것을 제한 기록.

는 SQL 서버에서는이 구문은 즉시 2012 쿼리가 두 내

select top 100 
그 안에 조인보다 더 가지고 내 SQL 서버로

...where rownum <= 100 order by rownum 

오라클에서 단순히

select top 100 from .... 

입니다

다음 오류가 발생합니다.

OLE DB 공급자 연결된 서버 "OraOLEDB.Oracle" "BIS"반환 메시지 "ORA-01403은 : 데이터는 메시지 7346 행의 데이터를 가져올 수 없습니다 수준 16, 상태 2, 줄 1

발견 연결된 서버 "BIS"에 대한 OLE DB 공급자 "OraOLEDB.Oracle"

top 100을 사용하면 작동하지만 너무 많은 데이터를 Google 네트워크를 통해 드래그합니다. 또한 필자는 이미 완료되기 전에 이미 가지고있는 select 문에 상당한 수의 조인을 추가해야합니다.

select 문에서 많은 수의 테이블을 조인 할 수 있지만 SQL Server 2012에서 T-SQL 구문을 사용하여 처음 100 개의 레코드 만 반환하고 Oracle에서이 레코드를 검색하는 방법은 무엇입니까?

+1

openquery를 사용하여 oracle 테이블을 쿼리하십시오. SQL 서버에 oracle 데이터를 조인해야하는 경우 openquery를 사용하여 임시 테이블을 채우고 그런 식으로 조인을 수행하십시오. –

답변

1

원하는 논리에 따라 상위 100 개의 행을 임시 테이블로 가져 와서 사용할 수 있습니다. 최종 쿼리가 100 개의 행을 가지므로 오라클 박스에서 더 많이 요구할 수 있기 때문에 "의존"이라고 말합니다.