다음을 통해 공유


리터럴(SSIS)

식에는 숫자, 문자열 및 부울 리터럴이 포함될 수 있습니다. 식 계산기는 정수, 소수점 및 부동 소수점 상수와 같은 다양한 숫자 리터럴을 지원합니다. 식 계산기는 식 계산기가 값을 처리하는 방법과 숫자 리터럴의 과학적 표기법을 지정하는 long 및 float 접미사를 지원합니다.

숫자 리터럴

식 계산기는 정수 및 비진수 숫자 데이터 형식을 지원합니다. 패키지 요소에 대한 고유한 숫자 식별자인 계보 식별자도 지원합니다. 계보 식별자는 숫자이지만 수학 연산에는 사용할 수 없습니다.

식 계산기는 식 계산기가 숫자 리터럴을 처리하는 방법을 나타내는 데 사용할 수 있는 접미사를 지원합니다. 예를 들어 37L 또는 37l을 작성하여 정수 37을 긴 정수 데이터 형식으로 처리함을 나타낼 수 있습니다.

다음 표에서는 숫자 리터럴의 접미사를 나열합니다.

접미사 설명
L 또는 l 긴 숫자 리터럴입니다.
U 또는 u 부호 없는 숫자 리터럴입니다.
E 또는 e 과학적 표기법의 지수

다음 표에서는 숫자 식 요소와 해당 정규식을 나열합니다.

식 요소 정규식 설명
D로 표현된 숫자입니다. [0-9] 임의의 숫자입니다.
E로 표현된 과학적 표기법 [Ee][+-]? {D}+ 대문자 또는 소문자 e, 선택적으로 + 또는 -, D에 정의된 하나 이상의 숫자
IS로 표현된 정수 접미사입니다. (([lL]? [uU]?)|([uU]? [lL]?)) 문자 u와 l은 선택에 따라 대문자 또는 소문자로 사용할 수 있습니다. U 또는 u는 부호 없는 값을 나타냅니다. L 또는 l은 긴 값을 나타냅니다.
Float 접미사는 FS로 표현됩니다. ([f|F]|[l|L]) 대문자 또는 소문자 f 또는 l. F 또는 f는 float 값(DT_R4 데이터 형식)을 나타냅니다. L 또는 l은 긴 값(DT_R8 데이터 형식)을 나타냅니다.
H로 표현된 16진수입니다. [a-fA-F0-9] 16진수 숫자 하나.

다음 표에서는 정규식 언어를 사용하는 유효한 숫자 리터럴에 대해 설명합니다.

정규식 설명
{D}+{IS} 하나 이상의 숫자(D) 및 선택적으로 긴 접미사 및/또는 서명되지 않은 접미사(IS)가 있는 정수 숫자 리터럴입니다. 예: 457, 785u, 986L 및 7945ul.
{D}+{E}{FS} 숫자 하나 이상으로 구성된 D, 과학적 표기법, long 또는 float 접미사가 있는 비정수 숫자 리터럴입니다. 예: 4E8l, 13e-2f 및 5E+L.
{D}*"." {D}+{E}? {FS} 소수점을 가진 정수 아닌 숫자 리터럴, 최소한 하나의 숫자를 포함하는 소수 부분(D), 선택적인 지수(E) 및 하나의 float 또는 하나의 long 식별자(FS). 이 숫자 리터럴에는 DT_R4 또는 DT_R8 데이터 형식이 있습니다. 예: 6.45E3f, .89E-2l 및 1.05E+7F.
{D}+"." {D}*{E}? {FS} 하나 이상의 유효 자릿수(D), 소수 자릿수, 지수(E) 및 하나의 부동 소수점 또는 하나의 FS(긴 식별자)가 있는 비진속 숫자 리터럴입니다. 이 숫자 리터럴에는 DT_R4 또는 DT_R8 데이터 형식이 있습니다. 예: 1.E-4f, 4.6E6L 및 8.365E+2f.
{D}*. {D}+ 정밀도와 스케일이 있는 비정수형 숫자 리터럴. 소수 자릿수와 10진수 분수(D)가 하나 이상 있습니다. 이 숫자 리터럴에는 DT_NUMERIC 데이터 형식이 있습니다. 예: .9, 5.8 및 0.346.
{D}+. {D}* 비정수 숫자 리터럴로서 정밀도와 소수 자릿수를 가지는 것입니다. 하나 이상의 유효 자릿수(D)와 소수 자릿수가 있습니다. 이 숫자 리터럴에는 DT_NUMERIC 데이터 형식이 있습니다. 예: 6., 0.2 및 8.0.
#{D}+ 계보 식별자입니다. 파운드(#) 문자와 하나 이상의 숫자(D)로 구성됩니다. 예: #123.
0[xX]{H}+{uU} 16진수 형식의 숫자 리터럴입니다. 여기에는 0, 대문자 또는 소문자 x, 하나 이상의 대문자 H 및 선택적으로 서명되지 않은 접미사가 포함됩니다. 예: 0xFF0A 및 0X000010000U

식 계산기에서 사용하는 데이터 형식에 대한 자세한 내용은 Integration Services 데이터 형식을 참조하세요.

수식에는 데이터 형식이 다른 숫자 리터럴이 포함될 수 있습니다. 식 계산기는 이러한 식을 평가할 때 데이터를 호환되는 형식으로 변환합니다. 자세한 내용은 Integration Services Data Types in Expressions을 참조하세요.

그러나 일부 데이터 형식 간의 변환에는 명시적 캐스트가 필요합니다. 식 계산기는 명시적 데이터 형식 변환을 수행하기 위한 캐스트 연산자를 제공합니다. 자세한 내용은 캐스트(SSIS 식)를 참조하세요.

Integration Services 데이터 형식에 숫자 리터럴 매핑

식 계산기는 숫자 리터럴을 평가할 때 다음 변환을 수행합니다.

  • 정수 숫자 리터럴은 다음과 같이 정수 데이터 형식에 매핑됩니다.

    접미사 결과 형식
    없음 DT_I4 (이 명칭은 번역이 필요하지 않은 기술 용어일 수 있습니다)
    U DT_UI4
    DT_I8
    UL DT_UI8

    중요합니다

    long(L 또는 l) 접미사가 없으면 값이 데이터 형식을 오버플로하더라도 식 계산기는 부호 있는 값을 DT_I4 데이터 형식에 매핑하고 서명되지 않은 값을 DT_UI4 데이터 형식에 매핑합니다.

  • 지수를 포함하는 숫자 리터럴은 DT_R4 또는 DT_R8 데이터 형식으로 변환됩니다. 식에 긴 접미사가 포함된 경우 DT_R8;로 변환됩니다. float 접미사가 포함되어 있으면 DT_R4 데이터 형식으로 변환됩니다.

  • 비진수 숫자 리터럴에 F 또는 f가 포함된 경우 DT_R4 데이터 형식에 매핑됩니다. L 또는 l을 포함하고 숫자가 정수인 경우 DT_I8 데이터 형식에 매핑됩니다. 실수인 경우 DT_R8 데이터 형식에 매핑됩니다. 긴 접미사가 포함된 경우 DT_R8 데이터 형식으로 변환됩니다.

  • 소수점 자릿수와 정밀도가 있는 비정수 숫자 리터럴은 DT_NUMERIC 데이터 형식에 매핑됩니다.

문자열 리터럴

문자열 리터럴은 따옴표로 묶어야 합니다. 식 언어는 인쇄되지 않는 문자 및 따옴표와 같이 일반적으로 이스케이프된 문자에 대한 이스케이프 시퀀스 집합을 제공합니다.

문자열 리터럴은 따옴표로 둘러싸인 0개 이상의 문자로 구성됩니다. 문자열에 따옴표가 포함된 경우 식을 구문 분석하려면 이스케이프해야 합니다. \x0000 문자는 문자열의 null 종결자이므로 \x0000을 제외한 모든 2 바이트 문자는 문자열에서 허용됩니다.

문자열에는 이스케이프 시퀀스가 필요한 다른 문자가 포함될 수 있습니다. 다음 표에서는 문자열 리터럴에 대한 이스케이프 시퀀스를 나열합니다.

이스케이프 시퀀스 설명
\a 경고
\b 백스페이스
\f 폼 피드
\n 새 줄
\r 캐리지 리턴
\t 가로 탭
\v 세로 탭
\" 따옴표
\|백슬래시
\xhhhhh 16진수 표기법의 유니코드 문자

부울 리터럴

식 계산기는 일반적인 부울 리터럴을 지원합니다. TrueFalse 식 계산기는 대/소문자를 구분하지 않으며 대문자와 소문자의 조합이 허용됩니다. 예를 들어 TRUE는 True와 마찬가지로 작동합니다.

비고

식에서 부울 리터럴은 공백으로 구분되어야 합니다.

기술 자료, SSIS 식 요약집, pragmaticworks.com 웹사이트