SQL Server/SSIS 강좌

변수 – 다양한 사용자 변수를 만들어 보자

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

변수 – 다양한 사용자 변수를 만들어 보자

 

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

이번 시간에는 [변수]에 대해서 알아 보도록 하겠습니다.

 

지금까지 [데이터 흐름]에 대한 강좌를 하면서 중간 중간에 변수 사용에 대한 실습을 진행하였습니다. 이번 시간에는 변수에 대해서 좀더 자세히 알아보고 각 항목에 대한 특성을 알아 보도로 합니다.

 

SSIS에는 크게 두 가지 유형의 변수가 있습니다.

  • 시스템 변수 – 패키지 생성일자, 패키지 GUID, Version GUID, Machine Name 등 패키지 수행 환경에 대한 정보가 저장되는 변수.

 

  • 사용자 변수 – 패키지 내에서 작업을 수행할 때 사용되는 변수로 사용자가 필요에 따라 추가하며 값을 변경 할 수 있음

 

 

SSIS의 변수 범위는 컨테이너 개체를 기준으로 범위가 결정 됩니다. 작업 개체 역시 하나의 작업 호스트 컨테이너이기 때문에 변수의 범위로 정의 될 수 있습니다.

 

사용자 변수를 추가하는 방법을 알아 보도로 하겠습니다.

 

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

 

[변수] 탭을 실행하는 방법은 두 가지가 있습니다.

[보기] – [다른 창] –[변수]

 

또는 빈 공간에서 마우스 오른쪽을 클릭하여 [변수]를 선택 합니다.

 

[변수]탭을 활성화 시키면 다음 그림과 같이 [변수]탭이 나타나고 변수를 생성 할 수 있는 메뉴가 나타 납니다.

 

 

변수를 추가한다

변수를 삭제 한다

시스템 변수 목록 보기

현재 패키지에 정의된 모든 사용자 변수 보기

변수 열 선택

 

 

변수의 범위는 변수를 추가할 때 지정할 수 있는 것이 아니며 변수 추가 할 때 선택되어 있는 컨테이너가 자동으로 변수 범위를 설정 합니다.

 

아래 그림은 각 컨테이너 별로 변수를 생성한 화면 입니다.

컨테이너에 따라 범위가 자동으로 지정되는 것을 확인 할 수 있습니다.

 

만약 상위 범위의 변수를 추가하고 싶으면 상위 영역으로 이동하여 변수를 추가 합니다.

 

[제어 흐름 영역], [데이터 흐름 영역], [이벤트 처리기 작업 영역] 에서의 시스템 변수는 조금 차이가 있습니다.

 

[패키지 수준의 시스템 변수]

시스템 변수

데이터 형식

이벤트 처리기

CalcelEvent

Int32

0이 아닌 값으로 설정되는 경우 작업 실행이 중지됨을 나타내는 이벤트 핸들

CreationDate

DateTime

패키지를 만든 날짜

CreatorComputerName

String

패키지를 만든 컴퓨터

CreatorName

String

패키지를 만든 사용자의 이름

ExecutionInstanceGUID

String

실행 중인 패키지의 고유 식별자

InteractiveMode

Boolean

패키지가 대화형 모드에서 실행 중인지 여부를 나타냄. SSIS디자이너에서 패키지를 실행 중인 경우 이 속성은 True로 설정.

LocaleID

Int32

패지지에서 사용되는 LocaleID

MachineName

String

패키지가 실행 중인 컴퓨터 이름

OfflineMode

Boolean

패키지가 오프라인 모드인지 여부를 나타냄. 오프라인 모드에서는 데이터 원본에 연결하지 않음.

PackageID

String

패키지의 고유 식별자

PackageName

String

패키지의 이름

StartTime

DateTime

패키지 실행을 시작한 시간

UserName

String

패키지를 시작한 사용자의 계정. 사용자 이름은 도메인 이름에 의해 한정 됨.

VersionBuild

Int32

패키지 버전

VersionComment

String

패키지 버전에 대한 설명

VersionGUID

String

버전의 고유 식별자

VersionMajor

Int32

패키지의 주 버전

VersionMinor

Int32

패키지의 부 버전

 

[컨테이너의 시스템 변수]

시스템 변수

데이터 형식

설명

LocalID

Int32

컨테이너에 사용되는 LocalID

 

[작업 수준의 시스템 변수]

시스템 변수

데이터 형식

설명

CreationName

String

작업 이름

LocaleID

Int32

작업에서 사용되는 LocalID

TaskID

String

작업의 고유 식별자

TaskName

String

작업 이름

TaskTransactionOption

Int32

작업에서 사용되는 트랜잭션 옵션

 

[이벤트 처리기의 시스템 변수]

시스템 변수

이벤트 처리기

설명

Cancel

OnError

OnWarning

OnQueryCancel

오류, 경고 또는쿼리 취소가 발생할 때 이벤트 처리기 실행이 중지되는지 여부를 나타 냄

ErrorCode

OnError

OnInformation

OnWarining

오류 식별자

ErrorDescription

OnError

OnInformation

OnWarining

오류에 대한 설명

ExecutionStatus

OnExecStatusChanged

현재 실행 상태

ExecutionValue

OnTaskFailed

실행 값

LocaleID

All

이번트 처리에서 사용되는 LocalD

PercentComplete

OnProgress

완료된 작업의 백분율

ProgressCountHigh

OnPregress

OnProgress이벤트에 의해 처리된 전체 작업 개수를 나타내는 64비트 값의 상위 부분

ProgressCountLow

OnPregress

OnProgress 이벤트에 의해 처리된 전체 작업 개수를 나타내는 64비트 하위 부분.

ProgressDescription

OnPregress

진행률에 대한 설명

Propagate

All

이벤트가 상위 수준의 이벤트 처리기로 전달되는지 여부

SourceDescription

All

이벤트 처리기에서 이벤트를 발생 시킨 실행 개체에 대한 설명

SourceID

All

이벤트 처리기에서 이벤트를 발생 시킨 실행 개체의 고유 식별자

SourceName

All

이벤트 처리기에서 이벤트를 발생시킨 시행 개체의 이름

VariableDescription

OnVariableValueChanged

변수 설명

VariabeID

OnVariableValueChanged

변수의 고유 식별자

 

반응형