SSIS를 사용하여 텍스트 내용을 테이블로 적재하는 방법, 혹은 추출하는 방법을 알아보겠습니다.
적재하는 방법을 먼저 알아보겠습니다.
1. txt 파일에 데이터가 다음과 같이 들어있습니다.
2. 테스트에 사용될 테이블을 생성합니다. (레코드 크기는 왜이렇게 커! 이러지말고 무시해주세요..)
CREATE TABLE dbo.TEST_txt ( NAME VARCHAR(50), AGE INT, SEX CHAR(50) ) |
3. Visual Studio 를 실행한뒤 SSIS 솔루션을 생성합니다.
4. 데이터 흐름 태스크를 드래그하여 끌고 옵니다. 이후 데이터 흐름 태크스를 더블클릭합니다.
5. 플랫 파일 원본과 OLEDB 대상을 드래그하여 끌고 옵니다. 이후 플랫 파일 원본의 파란 화살표를 OLE DB 대상에 연결합니다.
6. 플랫 파일 원본을 더블클릭합니다.
6-1. 연결 관리자 이름과 설명을 입력한 뒤, 일반 탭에서 적재할 텍스트 파일을 선택합니다. 텍스트 파일의 첫 줄에 컬럼명이 작성되어 있지 않다면, 첫 번째 데이터 행의 열 이름 란의 네모박스 체크를 해제합니다.
6-2. 열 탭에서 데이터 구분자가 정확한지 확인합니다.
6-3. 각 열의 데이터 타입을 설정해줍니다. 이후 관리자 편집기 창에서 확인을 눌러 줍니다.
컬럼의 크기보다 크게 설정하면 적재할때 오류가 나기 때문에, 맞춰서 설정을 진행해주세요.
6-4. 연결 관리자의 원본의 Null 값을 데이터 흐름의 Null 값으로 유지에 체크합니다. (열과 오류 출력도 체크한번 해줍니다. 기본 설정) 이 후 편집기에서 확인을 눌러 마칩니다.
7. OLEDB 대상을 더블클릭합니다.
7-1. OLE DB 연결 관리자에서 새로 만들기를 클릭합니다.
7-2. 접속하려는 서버명을 서버 이름에 입력합니다. 데이터베이 명칭을 입력 후 연결 테스트를 클릭합니다.
7-3. 연결 테스트가 정상적인 경우 연결 테스트에 성공했다는 알림창이 팝업됩니다.
7-4. 적재하려는 테이블을 선택합니다.
7-5. 매핑 탭에서 입력 열과 대상 열을 매핑한 뒤 완료 합니다.
8. 만들어진 작업을 실행합니다.
9. SSMS 에서 적재된 데이터를 확인합니다.
이번에는 추출하는 방법에 대해서 알아보겠습니다. ( 위에 적재하는 방법과 비슷합니다. )
1. 데이터 흐름 테스크를 하나 더 생성한 뒤 더블 클릭 합니다.
2. 적재와는 반대로 OLE DB 원본과 플랫 파일 대상을 선택합니다.
3. OLE DB 원본을 더블 클릭한 뒤, 서버 연결 및 추출하려는 테이블을 선택합니다.
4. 플랫 파일 대상을 더블 클릭한 뒤, 새로만들기를 클릭합니다.
4-1. 구분 기호로 분리됨을 선택합니다.
4-2. 내려받길 원하는 파일명(바탕화면의 user2.txt를 입력함)을 입력한 뒤 편집기를 마칩니다.
5. 매핑작업을 진행합니다.
6. 만들어진 작업을 실행한뒤 생성된 텍스트파일의 내용을 확인합니다.
사진에서 | 는 현재 커서 위치 깜박임이며, 이 위치에 커서가 있는 이유는 컬럼 타입이 CHAR(50)이기 때문입니다.
'SQL Server > SQL Server 기타' 카테고리의 다른 글
[MsSQL] 로그인과 사용자 차이점 알아보기 login user 차이점 알아보기 (0) | 2019.03.04 |
---|---|
[MsSQL] 날짜데이터를 CONVERT 함수를 사용하여 시간포맷 지정하기 (0) | 2019.02.14 |
[MsSQL] 인터넷이 되지 않는 환경에서 SSDT 설치하기 (0) | 2019.02.12 |
[MsSQL] DBCC문 알아보기 (0) | 2019.02.08 |
[MsSQL] sp_executesql 을 사용하여 동적 쿼리의 실행계획을 재사용하기 (0) | 2019.02.07 |