식
식(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 값을 반환합니다. |
'연구개발 > DTS & SSIS' 카테고리의 다른 글
기본 강좌 42 - 검사점 (0) | 2009.06.20 |
---|---|
기본 강좌 41 - 구성 (0) | 2009.06.20 |
기본 강좌 39 - 변수 (0) | 2009.06.20 |
따라하기 - 스크립트 구성 요소 - 대상 (0) | 2009.06.20 |
따라하기 - 스크립트 구성 요소 - 변환 (0) | 2009.06.20 |