연결되지 않고 연결 불가능한 2 개의 별도 Oracle 데이터베이스가 있습니다. 가능한 한 신속하고 고통없이 정보를 다른 사람에게 제공해야합니다.2 개의 별도 Oracle 데이터베이스 간 데이터 병합
일반적으로이 상황에서 병합을 완료 할 때까지 가져올 데이터 (기본적으로 데이터를 저장하기위한 임시 테이블)의 준비 영역을 만들 때까지 지금까지 무엇을했는지. 의 데이터를 모두으로 복사하여 해당 준비 영역의 소스에서 필요합니다. 그런 다음 두 테이블이 연결되어있는 것처럼 데이터를 병합합니다. 즉, 그 당시 필요하지 않은 데이터를 필터링 할 수 있다는 것을 의미합니다.
여기 현재의 문제가 있습니다. 원본 테이블은 이며 매우 크고 완전히 색인이 생성되지 않았습니다 (내가 제어 할 수없는 것, 우). 즉, 어떤 방식 으로든 필터를 적용하지 않으면 이 (가)으로 필요한 데이터를 가져올 수 있습니다. 또한 대상 테이블은 실제로 수행 할 작업을 수행하기 위해 상대적으로 작은 데이터 하위 집합 만 필요합니다. 한 번에 수천 개 또는 수 개의 고유 한 행이 필요합니다. 이 경우에 나는 일 수있는 데이터의 모든을 복사하고 싶지 않습니다. 난 단지 정확히 데이터를 복사하거나 가능한 한 가까이에 복사하고 싶습니다.
TL : DR 버전
정확히 어떻게 나는 그들이 서로 통신 할 수없는 경우 대상 테이블에서 필요에 따라 소스 테이블에 나의 선택 제한합니까?
예를 들어 대상에 필요한 데이터의 ID를 선택하고이를 기반으로 원본 테이블에 대한 쿼리를 작성할 수 있습니다. 그러나 이로 인해 수천 개의 OR 절이 포함 된 쿼리가 생성 될 수 있습니다.
SELECT x, y FROM z WHERE (ID = 1 OR ID = 2 ... OR ID = 10000 OR ID = 10001...)
또는 이와 비슷한 결과가 발생할 수 있습니다. 그것을하는 더 좋은 방법이 있습니까?
두 데이터베이스가 서로 통신 할 수없는 경우에도 두 데이터베이스와 동시에 통신 할 수 있도록 클라이언트를 배치 할 수 있습니까? –
당신이 필요한 것을 어떻게 알았습니까? 특정 날짜 이후의 새로운 행인가, 아니면 좀 더 미묘한 것입니까? – Gaius
특정 날짜 이후 추가 된 외래 키의 고유 ID 집합입니다. 따라서 초기 선택은 "SELECT DISTINCT FOREIGN_KEY_ID from TABLEX WHERE DATE_ADDED> '2012-01-01';" –