0

4 개의 다른 텍스트 파일을 각 파일마다 다른 이름과 다른 열을 하나의 폴더에 넣습니다. 이 4 개의 파일을 4 개의 다른 기존 테이블에 삽입하거나 업데이트하려고합니다. 따라서이 4 개의 파일을 읽는 방법을 동적으로 읽고 SSIS의 해당 테이블에 동적으로 삽입하십시오.여러 개의 텍스트 파일 삽입

답변

0

글쎄, 당신은 테이블 대상 (아마도 OLEDB 대상)에 플랫 파일 원본에서 데이터를 이동하는 데이터 흐름 작업를 사용해야합니다. 파일의 열이 어떤 식 으로든 구분됩니까? 예를 들어, 다음 중 하나를 사용합니다. (;), (|) 또는 이와 비슷한 내용이 있습니까? 그럴 경우 FlatFileConnectionManager을 만들고 열을 분할하도록 설정할 수 있습니다. 그렇지 않은 경우 FixedWidth 옵션을 사용하여 열을 구분해야 할 수도 있습니다. OLEDB 대상을 사용하려면 OLEDB 연결 관리자을 만들어 데이터베이스의 테이블을 가리켜 야합니다. 데이터를 읽으려는 파일에 대한 정보가 더 있으면 더 많이 도울 수 있습니다.

EDIT 그럼 당신은 당신이 aswell 4 개 OLEDB 대상 (각 플랫 파일에 대한 각각의 1) 4 플랫 대상 sourcers을 만들 수 있도록, 4 개 파일과 4 개 테이블 작업 중이던 시작했다. 내가 너를 올바르게 이해했다면,이 네 가지 파일이 존재할 수도 있고 존재하지 않을 수도있다. 따라서 파일에 사용할 이름을 알고있는 경우 패키지 속성 DelayValidation을 true로 변경 한 다음 샘플 텍스트 파일로 연결을 만듭니다. 이렇게하면 파일 경로가 저장됩니다. 제 의견으로는 테이블이 존재해야합니다. 당신이 말했던 때 :

내가 폴더 안의 파일이있을 때마다 모든 다른 텍스트 파일을 각각의 기존 테이블에로드하려고합니다.

난 당신이 비슷한 일을 할 수있는 알고있는 유일한 방법은, SQL Server 에이전트 작업와 특정 시간에 패키지의 실행을 예약하는 것입니다. 이것이 당신이 찾고있는 것이라면 알려주세요.

+0

예 텍스트 파일이 구분됩니다. 이러한 구분 된 텍스트 파일을 다른 테이블에 동시에로드 한 다음 diff 위치로 파일을 보관하려면 단일 패키지를 만들고 싶습니다. – Jason312

+0

@ Jason312 ok then. 마찬가지로 데이터 흐름 작업을 사용해야하고 FlatFileSource를 드래그하여 connectionMannager를 시작해야한다고 말한 것처럼 OLEDB 대상과 동일하게 작업하십시오. 삽입하고자하는 4 열 중 하나와 같은 열을 가진 테이블을 만드는 것이 좋습니다. [이 튜토리얼은 매우 유용 할 것입니다.] (https://katieandemil.academy/create-ssis-package-find-an-example-how-to-create-an-ssis-package-a-simple-one) – Mokz

+0

I ssis에 익숙하지 만 당신의 방법은 단순한 플랫 파일 입력입니다. 이 프로젝트의 목적은 프로세스를 자동화하는 것입니다. 폴더 안에 파일이있을 때마다 각기 다른 기존 테이블에 모든 텍스트 파일을로드하려고합니다. 예를 들어 A 테이블의 텍스트 파일, B 테이블의 B 텍스트 파일 등. foreachloop을 사용하려고했지만 동일한 대상으로 만 이동합니다. 동적으로 대상을 만드는 방법과 일부 레코드가 중복되어 있기 때문에 조회 기능을 사용하여 이러한 작업에 연결하는 방법은 무엇입니까? – Jason312