반응형

원격에서 패키지 호출하기 - (2) 테스트용 패키지 만들기

한대성

MS SQL Server MVP

에이디컨설팅 책임 컨설턴트 | SQLLeader.com 운영자

<강좌 구성>

1. 구현 환경 설명

2. 테스트 패키지 만들기

3. SQL Agent Job 이용한 호출

4. xp_cmdshell 명령 이용한 호출

5. 서비스를 이용한 호출

2. 테스트 패키지 만들기

SSIS 패키지는 클래스나 라이브러리와 같이 외부에서 입력 값들을 넘겨주고 이를 이용해서 작업을 수행하도록 구성할 있습니다. 또한 지정된 작업을 처리한 결과를 넘겨받을 수도 있습니다.

강좌에서는 다음과 같은 기능을 하는 아주 간단한 패키지를 예제로 사용하겠습니다.


)

InputVal 이라는 값을 입력받은 , OutputVal 이라는 변수에 값의 제곱을 저장하는 기능을 수행하는 패키지입니다.

패키지를 만들기에 앞서 패키지의 입력에 관해 짧게 먼저 설명 드리겠습니다.

  • 패키지에서 입력은 변수를 통해서만 수행할 있습니다. 해당 변수가 외부로부터 값을 넘겨받을 것이라는 지정은 패키지 부분에서는 필요가 없습니다. 패키지를 실행하는 단계에서 패키지의 속성을 지정하는 형태로 설정합니다.
  • 특별한 경우로, 부모 패키지의 이름이 다른 변수로부터 값을 넘겨받아야 경우에는 구성(Configurations) 이용해서 이를 지정해 있습니다.
  • 패키지의 출력은 변수 또는 ADO.NET Recordset 개체를 이용할 있습니다. 변수로 출력을 경우에는 입력과 마찬가지로 특별히 해당 변수가 출력 변수라는 것을 명시하는 부분은 없습니다.
  • ADO.NET 이용해서 값을 출력하는 것은 다음의 예제 참고하시기 바랍니다.

혹시나, 위의 설명 부분이 이해가 가시더라도 크게 고민하지 마시고 통과하세요. 다른 예제들을 따라 하다 보면 이해되실 있고, 예제에서는 크게 중요한 부분은 아닙니다.

이제 패키지를 만들어 보겠습니다. 처음 접하는 분들을 대상으로 한다고 앞에서 밝혔기에 패키지를 만드는데 익숙한 분들은 조금 양해를 구하겠습니다.

시작 Microsoft SQL Server 2005 SQL Server Business Intelligence Development Studio 선택해서 패키지 개발 환경을 실행합니다.

파일 새로 만들기 프로젝트를 선택한 , 비즈니스 인텔리전스 프로젝트 , Integration Services 프로젝트 선택하고, 프로젝트의 이름과 경로를 적절히 지정합니다.



다음과
같은 패키지 환경이 만들어졌으면, 제어 흐름 영역에서 마우스 오른쪽 버튼을 클릭한 나타나는 메뉴에서 변수(S) 선택하여 변수 지정 창을 엽니다.



변수
창에서는 변수 이름과 변수가 사용되는 범위, 데이터 형식, 기본 값을 지정하게 됩니다. 여기서 아래 그림과 같이 InputVal OutputVal 이라는 Int32 변수 개를 추가합니다.




도구
상자에서 스크립트 작업을 추가한 , 다음과 같이 스크립트 작업 편집기의 ReadOnlyVariables ReadWritVariables 부분에 InputVal OutputVal 입력합니다.





아래에 있는 스크립트 디자인(S) 버튼을 클릭하여 VB.net 스크립트를 입력할 있는 VBA 창을 , 다음과 같은 스크립트를 입력합니다.

' Microsoft SQL Server Integration Services Script Task

' Write scripts using Microsoft Visual Basic

' The ScriptMain class is the entry point of the Script Task.

Imports System

Imports System.Data

Imports System.Math

Imports Microsoft.SqlServer.Dts.Runtime

Public Class ScriptMain

' The execution engine calls this method when the task executes.

' To access the object model, use the Dts object. Connections, variables, events,

' and logging features are available as static members of the Dts class.

' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.

'

' To open Code and Text Editor Help, press F1.

' To open Object Browser, press Ctrl+Alt+J.

Public Sub Main()

'

' Add your code here

'

Dts.Variables("OutputVal").Value = CInt(Dts.Variables("InputVal").Value) * CInt(Dts.Variables("InputVal").Value)

Dts.TaskResult = Dts.Results.Success

End Sub

End Class

VSA 닫고선, 솔루션 탐색기에서 패키지의 이름을 Process.dtsx 변경하고 저장합니다.




패키지를
실행해서 에러 없이 수행되는 것을 확인합니다.




이것으로
아주 단순하고 간단한 예제 패키지를 준비하였습니다.


실행해도
아무런 결과도 없어서 너무 재미없나요? 다음 편에 조금 재미있는 형태(or 조금 복잡한 형태) 내용들이 있습니다.

반응형

+ Recent posts