캐스트(SSIS 식)Cast (SSIS Expression)

식의 데이터 형식을 다른 데이터 형식으로 명시적으로 변환합니다.Explicitly converts an expression from one data type to a different data type. 캐스트 연산자는 잘라내기 연산자로 실행될 수도 있습니다.The cast operator can also function as a truncation operator.

구문Syntax


(type_spec) expression  

인수Arguments

type_spectype_spec
유효한 SSISSSIS 데이터 형식입니다.Is a valid SSISSSIS data type.

expressionexpression
유효한 식입니다.Is a valid expression.

결과 형식Result Types

type_spec데이터 형식입니다.The data type of type_spec. 자세한 내용은 Integration Services Data Types을 참조하세요.For more information, see Integration Services Data Types.

주의Remarks

다음 다이어그램에서는 유효한 캐스트 연산을 보여 줍니다.The following diagram shows legal cast operations.

데이터 형식 간 캐스트 법률 및 유효 하지 않은Legal and not legal casts between data types

일부 데이터 형식으로의 캐스트는 매개 변수가 필요합니다.Casting to some data types requires parameters. 다음 표에서는 이러한 데이터 형식과 해당 매개 변수를 보여 줍니다.The following table lists these data types and their parameters.

데이터 형식Data type 매개 변수Parameter 예제Example
DT_STRDT_STR charcountcharcount

codepagecodepage
(DT_STR,30,1252)는 1252 코드 페이지를 사용하여 30바이트 또는 30자의 단일 문자를 DT_STR 데이터 형식으로 캐스팅합니다.(DT_STR,30,1252) casts 30 bytes, or 30 single characters, to the DT_STR data type using the 1252 code page.
DT_WSTRDT_WSTR CharcountCharcount (DT_WSTR,20)은 20바이트 쌍 또는 20자의 유니코드 문자를 DT_WSTR 데이터 형식으로 캐스팅합니다.(DT_WSTR,20) casts 20 byte pairs, or 20 Unicode characters, to the DT_WSTR data type.
DT_BYTESDT_BYTES BytecountBytecount (DT_BYTES,50)은 50바이트를 DT_BYTES 데이터 형식으로 캐스팅합니다.(DT_BYTES,50) casts 50 bytes to the DT_BYTES data type.
DT_DECIMALDT_DECIMAL 소수 자릿수Scale (DT_DECIMAL,2)는 소수 자릿수 2를 사용하여 숫자 값을 DT_DECIMAL 데이터 형식으로 캐스팅합니다.(DT_DECIMAL,2) casts a numeric value to the DT_DECIMAL data type using a scale of 2.
DT_NUMERICDT_NUMERIC 전체 자릿수Precision

소수 자릿수Scale
(DT_NUMERIC,10,3)은 전체 자릿수 10, 소수 자릿수 3을 사용하여 숫자 값을 DT_NUMERIC 데이터 형식으로 캐스팅합니다.(DT_NUMERIC,10,3) casts a numeric value to the DT_NUMERIC data type using a precision of 10 and a scale of 3.
DT_TEXTDT_TEXT CodepageCodepage (DT_TEXT,1252)는 1252 코드 페이지를 사용하여 값을 DT_TEXT 데이터 형식으로 캐스팅합니다.(DT_TEXT,1252) casts a value to the DT_TEXT data type using the 1252 code page.

문자열을 DT_DATE로 캐스팅하거나 그 반대의 경우 변환 로캘이 사용됩니다.When a string is cast to a DT_DATE, or vice versa, the locale of the transformation is used. 단, 로캘 기본 설정이 ISO 형식을 사용하는지 여부에 관계없이 날짜는 ISO 형식 YYYY-MM-DD로 설정됩니다.However, the date is in the ISO format of YYYY-MM-DD, regardless of whether the locale preference uses the ISO format.

참고

문자열을 DT_DATE가 아닌 다른 날짜 데이터 형식으로 변환하려면 Integration Services 데이터 형식을 참조하세요.To convert a string to a date data type other than DT_DATE, see Integration Services Data Types.

코드 페이지가 멀티바이트 문자 코드 페이지이면 바이트 수와 문자 수가 다를 수 있습니다.If the code page is a multibyte character code page, the number of bytes and characters may differ. 동일한 charcount 값을 사용하여 DT_WSTR에서 DT_STR로 캐스팅하면 변환된 문자열의 마지막 문자가 잘릴 수 있습니다.Casting from a DT_WSTR to a DT_STR with the same charcount value may cause truncation of the final characters in the converted string. 대상 테이블의 열에 사용 가능한 저장 공간이 충분한 경우 멀티바이트 코드 페이지에 필요한 바이트 수를 반영하여 charcount 매개 변수의 값을 설정합니다.If sufficient storage is available in the column of the destination table, set the value of the charcount parameter to reflect the number of bytes that the multibyte code page requires. 예를 들어 936 코드 페이지를 사용하여 문자 데이터를 DT_STR 데이터 형식으로 캐스팅하는 경우 charcount 를 데이터에 포함될 예상 문자 수보다 최대 2배의 값으로 설정해야 합니다. UTF-8 코드 페이지를 사용하여 문자 데이터를 캐스팅하는 경우에는 charcount 를 최대 4배의 값으로 설정해야 합니다.For example, if you cast character data to a DT_STR data type using the 936 code page, you should set charcount to a value up to two times greater than the number of characters that you expect the data to contain; if you cast character data using the UTF-8 code page, you should set charcount to a value up to four times greater.

날짜 데이터 형식의 구조에 대한 자세한 내용은 Integration Services Data Types을 참조하십시오.For more information about the structure of date data types, see Integration Services Data Types.

SSIS 식 예SSIS Expression Examples

이 예에서는 숫자 값을 정수로 캐스팅합니다.This example casts a numeric value to an integer.

(DT_I4) 3.57  

이 예에서는 1252 코드 페이지를 사용하여 정수를 문자열로 캐스팅합니다.This example casts an integer to a character string using the 1252 code page.

(DT_STR,1,1252)5  

이 예에서는 3자 문자열을 더블바이트 문자로 캐스팅합니다.This example casts a three-character string to double-byte characters.

(DT_WSTR,3)"Cat"  

이 예에서는 정수를 소수 자릿수 2의 10진수로 캐스팅합니다.This example casts an integer to a decimal with a scale of two.

(DT_DECIMAl,2)500  

이 예에서는 정수를 전체 자릿수가 7이고 소수 자릿수가 3인 정수로 캐스팅합니다.This example casts an integer to a numeric with a precision of seven and scale of three.

(DT_NUMERIC,7,3)4000  

이 예에서는 1252 코드 페이지를 사용하여 nvarchar 데이터 형식과 길이 50으로 정의된 FirstName 열의 값을 문자열로 캐스팅합니다.This example casts values in the FirstName column, defined with an nvarchar data type and a length of 50, to a character string using the 1252 code page.

(DT_STR,50,1252)FirstName  

이 예에서는 DT_DBDATE 형식의 DateFirstPurchase 열에 있는 값을 길이가 20인 유니코드 문자열에 캐스팅합니다.This example casts values in the DateFirstPurchase column of type DT_DBDATE, to a Unicode character string with a length of 20.

(DT_WSTR,20)DateFirstPurchase  

이 예에서는 문자열 "True"를 부울로 캐스팅합니다.This example casts the string literal "True" to a Boolean.

(DT_BOOL)"True"  

이 예에서는 문자열 리터럴을 DT_DBDATE로 캐스팅합니다.This example casts a string literal to DT_DBDATE.

(DT_DBDATE) "1999-10-11"  

이 예에서는 문자열 리터럴을 소수 자릿수 초에 5자리를 사용하는 DT_DBTIME2 데이터 형식으로 캐스팅합니다.This example casts a string literal to the DT_DBTIME2 data type that uses 5 digits for fractional seconds. DT_DBTIME2 데이터 형식은 소수 자릿수 초에 지정된 0부터 7자리까지 가질 수 있습니다.(The DT_DBTIME2 data type can have between 0 and 7 digits specified for fractional seconds.)

(DT_DBTIME2, 5) "16:34:52.12345"  

이 예에서는 문자열 리터럴을 소수 자릿수 초에 4자리를 사용하는 DT_DBTIMESTAMP2 데이터 형식으로 캐스팅합니다.This example casts a string literal to the DT_DBTIMESTAMP2 data type that uses 4 digits for fractional seconds. DT_DBTIMESTAMP2 데이터 형식은 소수 자릿수 초에 지정된 0부터 7자리까지 가질 수 있습니다.(The DT_DBTIMESTAMP2 data type can have between 0 and 7 digits specified for fractional seconds.)

(DT_DBTIMESTAMP2, 4) "1999-10-11 16:34:52.1234"  

이 예에서는 문자열 리터럴을 소수 자릿수 초에 7자리를 사용하는 DT_DBTIMESTAMPOFFSET 데이터 형식으로 캐스팅합니다.This example casts a string literal to the DT_DBTIMESTAMPOFFSET data type that uses 7 digits for fractional seconds. DT_DBTIMESTAMPOFFSET 데이터 형식은 소수 자릿수 초에 지정된 0부터 7자리까지 가질 수 있습니다.(The DT_DBTIMESTAMPOFFSET data typecan have between 0 and 7 digits specified for fractional seconds.)

(DT_DBTIMESTAMPOFFSET, 7) "1999-10-11 16:34:52.1234567 + 5:35"  

관련 항목:See Also

연산자 우선순위 및 결합성 Operator Precedence and Associativity
연산자 ( SSIS 식 ) Operators (SSIS Expression)
Integration Services ( Ssis) 식 Integration Services (SSIS) Expressions
Integration Services 식의 데이터 형식Integration Services Data Types in Expressions