하나의 ID 필드에 3 개의 필드가있는 테이블이 있는데 다른 두 필드가있는 원본에서 새 레코드를 추가해야합니다. SSIS를 사용하고 있는데 원본 중 하나가 로컬 데이터베이스에 없기 때문에 병합 도구를 사용해야한다고 생각합니다. 그러나 병합 도구와 적절한 프로세스가 혼란 스럽습니다.SSIS에서 병합 작업을 사용하기위한 지침
나는 하나의 소스 (오라클 테이블)를 가지고 있으며 well_id와 well_name의 두 필드를 가지고 있으며, 그 다음에는 well_id로 정렬한다. 대상 테이블 (SQL Server)이 있고 원본으로 사용하고 있습니다. 여기에는 well_key (ID 필드), well_id 및 well_name이라는 세 개의 필드가 있으며 well_id를 기준으로 정렬 작업을 수행합니다. 둘 다 내 병합 작업에 입력됩니다. 임시 테이블로 출력하려고했는데 어떻게 든 새 레코드를 SQL Server 테이블로 다시 가져옵니다.
Oracle Well SQL Well
| |
V V
Sort Source Sort Well
| |
-------> Merge* <-----------
|
V
Temp well table
그러나이 도구를 사용하는 가장 좋은 방법은 아닌 것 같습니다. 이런 병합을위한 적절한 단계는 무엇입니까?
이 방법을 묻는 나의 이유 중 하나는 "병합 입력 2"가 정렬되어야하지만 원본은 정렬 작업이므로 정렬된다는 오류가 내 병합에 있다는 것입니다. 임시 로컬 파일로 내 오라클 음을로드 한 다음 단지에 SQL 삽입 한 Statment를 사용하는
예 데이터
SQL Well (before merge)
well_key well_id well_name
1 123 well k
2 292 well c
3 344 well t
5 439 well d
Oracle Well
well_id well_name
123 well k
292 well c
311 well y
344 well t
439 well d
532 well j
SQL Well (after merge)
well_key well_id well_name
1 123 well k
2 292 well c
3 344 well t
5 439 well d
6 311 well y
7 532 well j
은 더 나은 것입니까?
스테이징 테이블과 결합하여 MERGE 문을 찾습니다. – IMHO
정렬 작업을 제거하고 두 입력에 정렬을 추가했습니다. 나는 그것이 분류되었다는 것을 인정하는 두 번째 입력을 얻을 수 없었습니다. 길 찾기가 명확하고 첫 번째 입력에서 올바르게 작동합니다. 병합에 대해 성공적으로 싸우려고했기 때문에 완전히 다른 트랙을 시도하고 결과 세트에 대해 SQL 코드를 사용하여 병합하려고했습니다. 그것은 또한 문제를 야기하기 때문에 다시 돌아올 수 있습니다. 단지 10,000 개 정도의 레코드가 있으며 필드에 작은 데이터입니다. – thursdaysgeek