스크립트 변환에서 변수 이용하기
한대성
MS SQL Server MVP
에이디컨설팅 책임 컨설턴트 | SQLLeader.com 운영자
데이터 흐름 내의 스크립트 변환에서 SSIS의 외부 변수를 이용하는 방법에 대한 간단한 예제를 설명하겠습니다.
예를 들어, 위와 같이 Col로 이루어진 입력 데이터에서 Seed라는 SSIS 변수의 값부터 시작하는 Identity 열을 추가하는 형태를 구현합니다.
우선, SSIS 변수를 하나 추가합니다. 변수 추가는 제어 흐름 영역에서 빈 곳을 마우스 오른쪽 클릭해서 나타나는 메뉴 중, 변수(S)를 선택하면 변수를 정의할 수 있는 창이 나타납니다.
여기서, Seed라는 Int32형 변수를 정의하고 임의의 값을 지정합니다.
제어 흐름 영역에 데이터 흐름 작업을 하나 추가한 후, 해당 데이터 흐름 영역에서 OLE DB 원본 또는 플랫 파일 원본 등과 같은 원본 개체를 이용해서 위와 같은 형태의 데이터 원본을 정의하고 스크립트 구성요소(변환)을 추가하고 원본과 연결합니다.
스크립트 변환 편집기의 입력 열 탭에서 Col 열을 선택합니다.
입/출력 탭의 출력 0의 출력 열 부분에 Seq라는 열을 추가합니다. 이 열은 스크립트 변환에 의해서 추가되는 열을 말합니다.
이제 스크립트 탭에서 스크립트 내에서 사용할 변수를 정의합니다. ReadOnlyVariables 속성에 앞에서 정의한 변수인 Seed를 설정합니다. 만약 이 변수의 값이 스크립트 내에서 참조만 할 경우에는 ReadOnlyVariables에 추가를 하며, 변수에 값을 설정할 경우에는 ReadWriteVariables 속성에 변수를 설정합니다.
스크립트 디자인(S) 버튼을 클릭해서 VSA(Visual Studio for Applications)를 연 후, 다음과 같은 스크립트를 입력합니다.
Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper Imports Microsoft.SqlServer.Dts.Runtime.Wrapper Public Class ScriptMain Inherits UserComponent Dim seq As Integer Public Overrides Sub 입력0_ProcessInputRow(ByVal Row As 입력0Buffer) Row.Seq = seq + Me.Variables.Seed seq = seq + 1 End Sub Public Sub New() seq = 0 End Sub End Class |
임의의 데이터 대상 또는 멀티 캐스트 등과 같은 변환을 연결하여 처리되는 데이터를 확인합니다.
'연구개발 > DTS & SSIS' 카테고리의 다른 글
스크립트 변환을 이용한 열 생성하기 (0) | 2009.06.20 |
---|---|
다중 쿼리 파일 실행하기 (0) | 2009.06.20 |
원격 서버간 데이터 동기화 구현 (0) | 2009.06.20 |
레코드 셋 결과 집합을 스크립트 작업에서 읽어오기 (0) | 2009.06.20 |
데이터 가져오기에서의 텍스트 파일 Null 처리 문제 (0) | 2009.06.20 |