구문(SSIS)

Integration Services 식 구문은 C 언어와 C# 언어에서 사용하는 구문과 유사합니다. 식별자(열과 변수), 리터럴, 연산자, 함수 등의 요소가 식에 포함됩니다. 이 항목에서는 각 식 요소에 적용되는 식 계산기 구문의 고유 요구 사항을 요약해서 보여 줍니다.

특정 연산자와 함수를 사용하는 예제 식을 보려면 이 항목의 각 연산자와 함수에 대해 설명된 항목인 연산자(SSIS)함수(SSIS)를 참조하십시오.

여러 개의 연산자 및 함수뿐 아니라 식별자와 리터럴도 사용하는 예제 식을 보려면 고급 Integration Services 식을 참조하십시오.

속성 식에 사용할 예제 식을 보려면 패키지에서 속성 식 사용을 참조하십시오.

경우에 따라 Integration Services는 식 길이에 대해 4000자 제한을 설정합니다. 식의 평가 결과에 Integration Services 데이터 형식 DT_WSTR 또는 DT_STR이 있는 경우 식이 4000자에서 잘립니다. 하위 식의 결과 유형이 DT_STR 또는 DT_WSTR인 경우 전체 식 결과 유형에 관계없이 해당 하위 식이 4000자로 잘립니다.

잘림이 발생하는 Integration Services 구성 요소에 따라 잘림이 다르게 처리됩니다.

  • 파생 열 및 조건부 분할과 같은 변환에서 잘림을 무시하거나 오류 출력을 사용하여 잘림을 다른 출력으로 발생시키는 데이터 행을 리디렉션하도록 변환을 구성하여 잘림을 적절하게 처리할 수 있습니다.

  • 런타임에서 속성 식, 변수 및 선행 제약 조건의 값을 설정하는 데 사용하는 식이 잘리는 것은 오류이며 패키지가 실패하는 원인이 될 수 있습니다.

  • 디자인 타임에 문자열 리터럴이 잘리는 경우 파이프라인에서 발생하면 경고가 생성되고 런타임에 발생하면 오류가 생성됩니다.

식별자

식은 열 식별자와 변수 식별자를 포함할 수 있습니다. 열은 데이터 원본에서 시작되거나 데이터 흐름에서 변환으로 만들어질 수 있습니다. 식은 계보 식별자를 사용하여 열을 참조할 수 있습니다. 계보 식별자는 패키지 요소를 고유하게 식별하는 번호입니다. 식에서 참조된 계보 식별자는 파운드(#) 접두사를 포함해야 합니다. 예를 들어 계보 식별자 138은 #138을 사용하여 참조합니다.

식은 SSIS에서 제공하는 시스템 변수와 사용자 지정 변수를 포함할 수 있습니다. 식에서 참조된 변수는 @ 접두사를 포함해야 합니다. 예를 들어 Counter 변수는 @Counter를 사용하여 참조합니다. @ 문자는 변수 이름의 일부가 아니라 식 계산기에 해당 변수를 식별하는 역할만 합니다. 자세한 내용은 식별자(SSIS 식)를 참조하십시오.

리터럴

식은 숫자, 문자열 및 부울 리터럴을 포함할 수 있습니다. 식에 사용된 문자열 리터럴은 따옴표로 묶어야 합니다. 숫자 및 부울 리터럴은 따옴표를 사용하지 않습니다. 식 언어에는 자주 이스케이프되는 문자에 대한 이스케이프 시퀀스가 포함되어 있습니다. 자세한 내용은 리터럴(SSIS)을 참조하십시오.

연산자

식 계산기는 Transact-SQL, C++ 및 C#과 같은 언어의 연산자 집합과 유사한 기능을 제공하는 연산자 집합을 제공합니다. 그러나 식 언어에는 추가 연산자가 포함되어 있으며 일반적인 기호가 아닌 다른 기호를 사용합니다. 자세한 내용은 연산자(SSIS)를 참조하십시오.

네임스페이스 확인 연산자

식은 네임스페이스 확인 연산자(::)를 사용하여 동일한 이름을 가진 변수를 명확하게 구분합니다. 네임스페이스 확인 연산자를 사용하면 해당 네임스페이스로 변수를 정규화하여 동일한 이름을 가진 여러 개의 변수를 한 패키지에서 사용할 수 있습니다.

캐스트 연산자

캐스트 연산자는 식 결과, 열 값, 변수 값 및 상수를 다른 데이터 형식으로 변환합니다. 식 언어에서 제공하는 캐스트 연산자는 C 언어와 C# 언어에서 제공하는 것과 유사합니다. Transact-SQL에서는 CAST 함수와 CONVERT 함수가 이 기능을 제공합니다. 캐스트 연산자 구문과 CAST 및 CONVERT에 사용되는 구문의 차이점은 다음과 같습니다.

  • 캐스트 연산자는 식을 인수로 사용할 수 있습니다.

  • 캐스트 연산자 구문에는 CAST 키워드가 포함되지 않습니다.

  • 캐스트 연산자 구문에는 AS 키워드가 포함되지 않습니다.

조건부 연산자

조건부 연산자는 부울 식의 계산에 따라 두 식 중 하나를 반환합니다. 식 언어에서 제공하는 조건부 연산자는 C 언어와 C# 언어에서 제공하는 것과 유사합니다. MDX(Multidimensional Expressions)에서는 IIF 함수가 이와 유사한 기능을 제공합니다.

논리 연산자

식 언어는 논리적 NOT 연산자를 나타내는 ! 문자를 지원합니다. Transact-SQL에서는 ! 연산자가 관계형 연산자 집합에 포함되어 있습니다. 예를 들어 Transact-SQL은 > 및 !> 연산자를 제공합니다. SSIS 식 언어는 ! 연산자와 다른 연산자의 조합을 지원하지 않습니다. 예를 들어 ! 연산자와 > 연산자를 !> 연산자로 결합할 수 없습니다. 그러나 식 언어는 같지 않음 비교를 나타내는 != 문자 조합을 기본적으로 지원합니다.

등가 연산자

식 계산기 문법에서는 == 등가 연산자를 제공합니다. 이 연산자는 Transact-SQL의 = 연산자 및 C#의 == 연산자에 해당합니다.

함수

식 언어에는 Transact-SQL 함수 및 C# 메서드와 유사한 날짜 및 시간 함수, 수치 연산 함수 및 문자열 함수가 포함되어 있습니다.

몇몇 함수는 Transact-SQL 함수와 이름이 같지만 식 계산기에서 조금 다른 기능을 수행합니다.

  • Transact-SQL의 ISNULL 함수는 Null 값을 지정한 값으로 바꾸는 반면 식 계산기의 ISNULL 함수는 식의 Null 여부에 따라 부울을 반환합니다.

  • Transact-SQL의 ROUND 함수에는 결과 집합을 자르는 옵션이 있지만 식 계산기의 ROUND 함수에는 이 옵션이 없습니다.

자세한 내용은 함수(SSIS)를 참조하십시오.

참고 항목

관련 자료