SQL Server/SSIS 강좌

스크립트 구성 요소 – [데이터 변환] 사용

SungWookKang 2015. 7. 16. 10:14
반응형

스크립트 구성 요소 – [데이터 변환] 사용

 

안녕하세요 강성욱 입니다. (www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida)

이버 시간에는 [스크립트 구성 요소] 사용에 대해서 알아 보도록 하겠습니다.

 

2부 – 데이터 변환으로 사용하기!

 

[데이터 변환]은 입력 데이터에 대하여 복잡한 연산을 수행하여 출력 합니다.

 

[스크립트 구성 요소] –[데이터 원본] 사용 관련 링크

http://blog.naver.com/jevida/140160648324

 

 

[BIDS]를 실행하여 [Integration Services 프로젝트]를 생성 합니다.

 

[제어 흐름] 탭에서 [데이터 흐름 태스크]를 드래그 앤 드롭으로 추가 합니다.

[스크립트 구성요소 2] 이름을 지정하여 태스크를 생성 합니다.

 

[데이터 흐름] 탭에서 그림과 같이 [스크립트 구성 요소]를 끌어다 놓습니다. 이때 팝업으로 [스크립트 구성 요소 유형 선택]창이 나타 납니다.

이번 실습에서는 [변환]으로 선택 합니다.

 

[레코드 집합 대상]을 드래그 앤 드롭으로 끌어다 놓은 후 데이터 흐름선을 연결 합니다.

 

[원본 데이터]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

그림과 같이 편집 창이 나타나면 [OLE DB 연결 관리자]에서 원본 DB의 연결 관리자를 선택하고 해당 테이블을 선택하여 [미리보기]를 이용하여 정상적으로 데이터가 읽어오는지 확인 합니다.

(본 실습에서는 Adventureworks의 Sales.SalesOrderDetail 테이블 사용)

 

[스크립트 구성 요소]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

[스크립트 변환 편집기] – [입력 열] 탭에서 아래 그림처럼 입력 열을 선택 합니다.

 

[입/출력] 탭에서는 [열 추가]버튼을 이용해서 [출력 열]을 생성 합니다.

 

[스크립트]탭에서 [스크립트 편집] 버튼을 클릭 합니다.

 

새로운 VS 창이 나타나면 데이터 변환 코드를 프로그래밍 합니다.

이번 실습에서는 Qty(수량)과 가격(UnitPrice)값을 곱한 Total_Price 값을 계산해 보도록 합니다.

 

int Total_Price = 0;

 

Total_Price = Convert.ToInt32(Row.OrderQty) * Convert.ToInt32(Row.UnitPrice);

 

Row.TotalPrice = Total_Price;

 

프로그래밍이 완료 되었으면 VS 창을 닫고 [데이터 흐름 태스크]의 빈 공간에서 마우스 오른쪽을 클릭하여 [변수]를 선택 합니다.

그리고 아래 그림처럼 변수를 생성합니다.

변수의 데이터 형식은 Object로 설정 합니다.

 

[레코드 집합 대상]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

[레코드 집합 대상 편집기] 창이 나타 납니다.

[구성 요소 속성] 탭에서 [사용자 지정 속성]의 [VariableName] 값을 앞에서 생성하였던 변수[User::TempResult]로 선택 합니다.

 

[입력 열] 탭에서 필요한 입력 열을 선택 합니다.

 

데이처가 처리되는 과정을 확인하기 위해 중간 경로에 [데이터 뷰어]를 추가 합니다.

[스크립트 구성 요소]와 [레코드 집합 대상]간의 녹색 경로에 마우스 오른쪽을 클릭하여 [데이터 뷰어]를 선택 합니다.

 

[데이터 흐름 경로 편집기]창이 나타나면 [데이터 뷰어]탭에서 [표]로 선택 합니다.

 

[구성] 버튼을 이용하여 [데이터 뷰어]에 나타낼 컬럼을 선택 합니다.

 

편집이 완료 되었으면 패키지를 실행 합니다.

늘 그러듯!

녹색 : 정상 실행

빨간색 : 오류 발생

 

[데이터 뷰어]에 [스크립트 구성 요소]에서 변환한 Total_Price값을 확인 할 수 있습니다.

반응형