(Expressions) 기능은 SSIS를 보다 동적으로 운영할 수 있도록 하는 기능입니다.

 

예를 들어 다음과 같은 프로세스 실행 작업을 생각해 봅시다.

 

 

 

zip.exe라는 압축을 수행하는 프로그램을 실행하며 매개 변수인 Arguments에는 상황에 따라 값이 변경되어야 하는 경우가 있을 수 있습니다. 20060915_Data.txt 와 같이 수행 날짜의 값을 이용한 파일명을 설정해야 하는 경우를 고려해 봅시다. 프로세스 실행 작업 편집기에서는 정적인(Statistics) 형태의 속성 값만 지정 가능하기 때문에 원하는 형태로 지정할 수 없습니다.

이를 구현할 수 있는 방법으로는 프로세스 실행 작업에 포함된 StandardInputVariable을 이용하는 방식입니다. String형 변수를 하나 추가한 후, 프로세스 실행 작업 전에 스크립트 작업 또는 ActiveX 스크립트 작업 등을 이용하여 이 변수에 해당 파일명 ( : @fileNameStr = “20060915_Data.txt”)을 지정하는 작업을 추가합니다. 그런 다음, StandardInputVariable 속성에 이 변수를 지정하는 방식입니다.

위의 경우, 입력 매개 변수를 대체해 주는 역할을 하는 StandardInputVariable 이라는 기능을 이용하여 해결할 수 있었지만, 만약 실행하는 프로그램 명(Executable)도 변경을 해야 하는 경우도 있을 수 있습니다. SQL 2000 DTS에서는 이러한 설정들을 수행하기 위해 동적 속성 작업을 이용하거나 ActiveX 스크립트 작업을 이용하여 해당 작업의 속성을 변경하도록 하였습니다. 물론 SQL 2005 SSIS에도 동적 속성을 대체하는 구성(Configuration)을 이용할 수도 있지만, DTS에서와는 용도가 약간 다릅니다.

 

SQL 2005 SSIS에서는 기본적으로 모든 작업 개체 및 작업 영역에서 해당 개체의 속성을 쉽게 설정할 수 있는 식(Expressions) 기능이 제공됩니다. 위의 예를 이용하여 계속 설명하겠습니다. 위의 그림에서 식 탭으로 이동한 후, Expressions 오른쪽에 있는 ... 버튼을 누르면 속성 식 편집기가 나타납니다.

 

 

이 편집기에서 해당 개체의 다양한 속성들을 정의할 수 있습니다.

속성에서 Arguments를 선택한 후, 오른쪽의 식 부분 옆에 있는 ... 버튼을 눌러 식 작성기를 띄운 후, 다음과 같은 형식으로 식을 작성하면 패키지가 실행 될 때 Arguments 속성 부분에 해당 날짜의 파일명이 지정됩니다.

 

 

이와 같은 방식으로 식을 작성하여 사용할 수 있으며, 하나의 작업 또는 개체, 컨테이너에 대해 여러 개의 식을 정의할 수도 있습니다.

식에서 정의할 수 있는 속성은 일부 공통 항목 외에는 각 개체마다 다릅니다. 위의 예에서와 같이 Arguments 속성은 프로세스 실행 작업에서만 나타나는 속성 항목이며, Name, TransactionOption 등과 같은 속성은 모든 작업에서 나타나는 속성 항목입니다.

 

식 작성기에서 식을 작성할 때에는 시스템 변수사용자 변수를 사용할 수도 있으며, 수치 연산 함수, 문자열 함수, 날짜/시간 함수, NULL  함수, 유형 변환, 연산자 등을 이용하여 작성할 수 있습니다.

 

 

?   수치 연산 함수

함수

설명

ABS

숫자 식의 절대값을 양수로 반환합니다.

EXP

밑이 e 지정한 식의 지수를 반환합니다.

CEILING

숫자 식보다 크거나 같은 최소 정수를 반환합니다.

FLOOR

숫자 식보다 작거나 같은 최대 정수를 반환합니다.

LN

숫자 식의 자연 로그를 반환합니다.

LOG

숫자 식의 상용 로그를 반환합니다.

POWER

숫자 식의 거듭제곱을 반환합니다.

ROUND

특정 길이나 전체 자릿수로 반올림한 숫자 식을 반환합니다.

SIGN

숫자 식의 양수(+), 음수(-) 또는 (0) 부호를 반환합니다.

SQUARE

숫자 식의 제곱을 반환합니다.

SQRT

숫자 식의 제곱근을 반환합니다.

 

?   문자열 함수

함수

설명

CODEPOINT

문자 식에서 가장 왼쪽 문자의 유니코드 코드 값을 반환합니다.

FINDSTRING

식에서 지정한 문자열 항목의 인덱스(1부터 시작) 반환합니다.

HEX

정수의 16진수 값을 나타내는 문자열을 반환합니다.

LEN

문자 식에 포함된 문자의 수를 반환합니다.

LOWER

대문자를 소문자로 변환한 후에 문자 식을 반환합니다.

LTRIM

선행 공백을 제거하고 문자 식을 반환합니다.

REPLACE

내의 문자열을 다른 문자열이나 문자열로 바꾼 문자 식을 반환합니다.

REPLICATE

지정한 횟수만큼 복제된 문자 식을 반환합니다.

REVERSE

문자 식을 순서로 반환합니다.

RIGHT

오른쪽의 지정한 문자 수에서 시작하여 문자열의 일부를 반환합니다.

RTRIM

후행 공백을 제거하고 문자 식을 반환합니다.

SUBSTRING

문자 식의 일부를 반환합니다.

TRIM

선행 후행 공백을 제거하고 문자 식을 반환합니다.

UPPER

소문자를 대문자로 변환한 후에 문자 식을 반환합니다.

 

?   날짜/시간 함수

함수

설명

DATEADD

지정한 날짜에 날짜 또는 시간 간격을 더하여 새로운 DT_DBTIMESTAMP 값을 반환합니다.

DATEDIFF

지정한 날짜 간에 교차되는 날짜와 시간 경계값을 반환합니다.

DATEPART

날짜의 특정 부분을 나타내는 정수를 반환합니다.

DAY

지정한 날짜의 일을 나타내는 정수를 반환합니다.

GETDATE

시스템의 현재 날짜를 반환합니다.

GETUTCDATE

시스템의 현재 날짜를 UTC 시간(국제 표준시 또는 그리니치 표준시)으로 반환합니다.

MONTH

지정한 날짜의 월을 나타내는 정수를 반환합니다.

YEAR

지정한 날짜의 연도를 나타내는 정수를 반환합니다.

 

?   NULL 함수

함수

설명

ISNULL

식이 Null인지 여부에 따라 부울 결과를 반환합니다.

NULL

요청한 데이터 형식의 Null 값을 반환합니다.

 

+ Recent posts