Приведение (выражение служб 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) приводит 30 байт (или 30 символов) к значению типа DT_STR, используя кодовую страницу 1252.(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 пар байт (или символов в формате Юникод) к значению типа 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) приводит числовое значение к типу данных DT_DECIMAL, используя масштаб 2.(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) приводит числовое значение к типу данных DT_NUMERIC, используя точность 10 и масштаб 3.(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) приводит значение к типу данных DT_TEXT, используя кодовую страницу 1252.(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.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. При приведении преобразования данных типа DT_WSTR к данным типа DT_STR с одинаковым значением параметра charcount может произойти усечение символов в результирующей строке.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. Например, при приведении символьных данных к формату DT_STR с использованием кодовой страницы 936 необходимо задать значение параметра charcount в два раза большее, чем количество символов в исходных данных. При преобразовании символьных данных с использованием кодовой страницы UTF-8 необходимо задать значение параметра charcount в четыре раза большее.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.

Дополнительные сведения о структуре типов данных «date» см. в разделе Integration Services Data Types.For more information about the structure of date data types, see Integration Services Data Types.

Примеры выражений служб SSISSSIS 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  

В данном примере строка, состоящая из трех символов, преобразуется в двухбайтовые символы.This example casts a three-character string to double-byte characters.

(DT_WSTR,3)"Cat"  

В данном примере целое число преобразуется в десятичное с масштабом 2.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  

В данном примере значения столбца FirstName преобразуются из формата nvarchar длиной 50 в символьную строку, используя кодовую страницу 1252.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  

В этом примере значения в столбце DateFirstPurchase типа DT_DBDATE приводятся к строке в Юникоде длиной 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"  

В данном примере строковый литерал приводится к типу данных DT_DBTIME2 с 5 цифрами для представления долей секунды.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"  

В данном примере строковый литерал приводится к типу данных DT_DBTIMESTAMP2 с 4 цифрами для представления долей секунды.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"  

В данном примере строковый литерал приводится к типу данных DT_DBTIMESTAMPOFFSET с 7 цифрами для представления долей секунды.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 ServicesIntegration Services Data Types in Expressions