SSIS를 처음 사용하기 때문에 나와 함께하시기 바랍니다.두 개의 테이블을 SSIS와 하나의 대상 테이블로 결합
SQL Server 2008 용 Integration Services 프로젝트를 만들어 이전 데이터베이스의 데이터를 새 데이터베이스로 가져 왔습니다. 필자가해야 할 일 중 하나는 이전의 두 원본 테이블에서 하나의 새로운 대상 테이블로 데이터를 가져 오는 것입니다.
가장 좋은 방법은 무엇입니까?
tsql을 사용하여 간단한 내부 조인 쿼리로 원하는 결과를 쉽게 볼 수 있지만 SSIS 패키지를 사용하여 행운을 얻지는 못합니다. 내 OLE DB 원본 구성 요소 후 다음 단계 인 조회 구성 요소를 추가 내 첫 번째 소스 테이블
- 추가 OLE DB 원본 구성 요소 : 내 현재의 접근 방식은 세 단계로 진행됩니다. 이 쿼리에서는 두 번째 원본 테이블 'null을 반환하는 sql 쿼리의 결과 사용'을 선택한 다음 외부 키 ID를 '사용 가능한 입력 열'에서 사용 가능한 조회 열의 기본 키로 끕니다. 또한 '사용 가능한 입력 열'의 확인란을 선택하여 두 개의 열을 더 추가합니다.
- OLE DB 대상을 추가하고 대상 테이블을 가리 킵니다.
이 프로세스는 조회 단계가 아니라 첫 번째 단계에서 실패하고 "조회 중 일치하는 행이 없습니다"라는 오류와 함께 실패합니다. 외래 키는 null이 될 수 없으며, 기본 키도 마찬가지 일 수 있습니다. 나는 단계에서 SQL 문을 사용하여 열에 null 날짜 값을 가져 오지 않았는지 확인할 수있었습니다 (몇 개가 있었음). 그러나 여전히 오류가 발생했습니다. 플랫 파일 대상에 첫 번째 단계 실패 경로를 출력하면 빈 CSV가 표시됩니다 (디버그 모드에서 ~ 600k 레코드가 플랫 파일로 이동하는 것을 관찰 함).
나는이 시점에서 꽤 난처한 상태 다. 그리고 이것은 매우 쉬운 작업이어야하는 것처럼 보인다. 나는 답변을 위해 웹을 샅샅이 뒤졌으며, 정확히 같은 문제가있는 것처럼 들리는이 link을 발견했지만 캐시 설정을 변경하면 도움이되지 못했습니다.
감사합니다.
불일치가있는 것처럼 들린다는 것에 동의합니다 - 온라인으로 읽은 모든 도움은이를 가리키는 것처럼 보이지만 두 테이블 모두 (외래 키가있는 테이블과 기본 테이블이있는 테이블))는 int 데이터 유형이며 null을 허용하지 않습니다. 대체 방법에 대한 아이디어가 좋으므로 시도해 보았습니다. 나는 당신이 소스에서 SQL Command를 할 수 있었는지 전혀 몰랐다. 그러나 데이터 접근 모드 아래에있다. :) 도움을 많이 주셔서 감사합니다. 그것은 아름답게 작동했습니다! – Mario
잘못된 점에 대해 더 자세히 알고 싶다면 제안이 있습니다. 찾아보기 태스크에서 실패한 행을 별도의 출력으로 구성 할 수 있습니다. LookUp Task에서 Error Output 구성을 선택하십시오. 오류 발생시 수행 할 작업을 선택하십시오. 다른 출력으로 리디렉션하거나 무시할 수 있습니다. 리디렉션하는 경우 텍스트 파일로 덤프하여 현재 상태를 확인하십시오. 또는이를 무시하고 대상 테이블에서 조회 데이터가 누락 된 행을 찾습니다. 행운을 빌어 요! –