반응형

변수

 

SSIS에는 크게 두 가지 유형의 변수가 있습니다. 하나는 시스템 변수이며, 다른 하나는 사용자 변수입니다. 이러한 구분은 변수 정의 시 네임 스페이스로 구분이 됩니다.

 

시스템 변수는 패키지 생성 일자, 패키지 GUID, Version GUID, Machine Name 등 패키지 수행 환경에 대한 정보가 저장되는 변수로써, 사용자가 해당 값을 변경할 수는 없습니다.

 

 

 

사용자 변수는 패키지 내에서 작업을 수행할 때 사용되는 변수로 사용자가 필요에 따라 추가하며, 값을 변경할 수 있습니다.

 

 

SQL 2000 DTS에서의 변수와 가장 큰 차이점은 사용자 변수 정의 시 범위가 설정되는 것입니다.

 

DTS에서 하나의 패키지에서는 범위의 개념이 없이 모든 동일한 수준에서 처리가 되었습니다. 하지만, SSIS에서는 컨테이너라는 개체를 기준으로 범위가 정해집니다. 작업 개체 역시 하나의 작업 호스트 컨테이너이기 때문에, 변수의 범위로 정의될 수 있습니다.

 

 

 

위의 그림에서, [변수1]은 변수예제.dtsx라는 전체 범위에서 정의된 변수입니다. 따라서 [변수1]은 패키지의 어떠한 영역에서도 이용 가능합니다.

[변수2]는 하위 컨테이너인 시퀀스 컨테이너(B)의 범위에서 정의된 변수로써, 시퀀스 컨테이너(B) 내에 포함된 SQL 실행 작업(B’)이나 데이터 흐름 작업(C) 등과 같은 하위 작업에서는 사용 가능하지만, SQL 실행 작업(A’)에서는 사용할 수 없습니다.

[변수3]데이터 흐름 작업(C)의 범위에서 정의된 변수이기 때문에, 데이터 흐름 작업(C) 외에는 사용할 수 없습니다.

 

변수가 사용할 범위의 설정은 변수 정의 시에 할 수 있는 사항은 아니며, 현재 선택되어 있는 수준이 자동으로 범위가 됩니다. , 데이터 흐름 작업(C) 내의 여러 변환에서 변수를 정의할 경우, 자동으로 해당 변수의 범위는 현재 작업 중인 컨테이너인 데이터 흐름 작업(C)가 됩니다.

만약 데이터 흐름 작업(C) 에서 상위 범위의 변수를 정의하기 위해서는 해당 수준의 컨테이너로 나온 후, 변수를 정의해야 합니다.

 

변수 창의 회색 X 버튼을 누르면 시스템 변수 리스트가 나타나며, 파란색 X 버튼을 누르면 현재 패키지에서 정의된 모든 사용자 변수가 나타납니다. 이 버튼이 눌러지지 않은 상태에서는 현재 컨테이너에서 사용 가능한 변수의 리스트만 나타납니다.

 

제어 흐름 영역데이터 흐름 영역, 이벤트 처리기 작업 영역에서 사용 가능한 시스템 변수는 약간씩 차이가 있습니다. 다음 표를 시스템 변수 리스트를 참고하시기 바랍니다.

 

 

?   패키지 수준의 시스템 변수

시스템 변수

데이터 형식

설명

CancelEvent

Int32

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

CreationDate

DateTime

패키지를 만든 날짜입니다.

CreatorComputerName

String

패키지를 만든 컴퓨터입니다.

CreatorName

String

패키지를 만든 사용자의 이름입니다.

ExecutionInstanceGUID

String

실행 중인 패키지의 고유 식별자입니다.

InteractiveMode

Boolean

패키지가 대화형 모드에서 실행 중인지 여부를 나타냅니다. SSIS 디자이너에서 패키지를 실행 중인 경우 속성은 True 설정됩니다. DTExec 명령 프롬프트 유틸리티를 사용하여 패키지를 실행 중인 경우 속성은 False 설정됩니다.

LocaleId

Int32

패키지에서 사용되는 로캘입니다.

MachineName

String

패키지가 실행 중인 컴퓨터 이름입니다.

OfflineMode

Boolean

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

PackageID

String

패키지의 고유 식별자입니다.

PackageName

String

패키지의 이름입니다.

StartTime

DateTime

패키지 실행을 시작한 시간입니다.

UserName

String

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

VersionBuild

Int32

패키지 버전입니다.

VersionComment

String

패키지 버전에 대한 설명입니다.

VersionGUID

String

버전의 고유 식별자입니다.

VersionMajor

Int32

패키지의 버전입니다.

VersionMinor

Int32

패키지의 버전입니다.

 

 

?   컨테이너의 시스템 변수

시스템 변수

데이터 형식

설명

LocaleId

Int32

컨테이너에서 사용되는 로캘입니다.

 

 

?   작업 수준의 시스템 변수

시스템 변수

데이터 형식

설명

CreationName

String

작업 이름입니다.

LocaleId

Int32

작업에서 사용되는 로캘입니다.

TaskID

String

작업의 고유 식별자입니다.

TaskName

String

작업의 이름입니다.

TaskTransactionOption

Int32

작업에서 사용되는 트랜잭션 옵션입니다.

 

 

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

시스템 변수

데이터 형식

설명

이벤트 처리기

Cancel

Boolean

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

OnError

OnWarning

OnQueryCancel

ErrorCode

Int32

오류 식별자입니다.

OnError

OnInformation

OnWarning

ErrorDescription

String

오류에 대한 설명입니다.

OnError

OnInformation

OnWarning

ExecutionStatus

Boolean

현재 실행 상태입니다.

OnExecStatusChanged

ExecutionValue

DBNull

실행 값입니다.

OnTaskFailed

LocaleId

Int32

이벤트 처리기에서 사용되는 로캘입니다.

All

PercentComplete

Int32

완료된 작업의 백분율입니다.

OnProgress

ProgressCountHigh

Int32

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

OnProgress

ProgressCountLow

Int32

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

OnProgress

ProgressDescription

String

진행률에 대한 설명입니다.

OnProgress

Propagate

Boolean

이벤트가 상위 수준의 이벤트 처리기로 전달되는지 여부를 나타냅니다.

All

SourceDescription

String

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

All

SourceID

String

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

All

SourceName

String

이벤트 처리기에서 이벤트를 발생시킨 실행 개체의 이름입니다.

All

VariableDescription

String

변수 설명입니다.

OnVariableValueChanged

VariableID

String

변수의 고유 식별자입니다.

OnVariableValueChanged

 

 

반응형

+ Recent posts