Поделиться через


Приведение (службы SSIS)

Явно приводит выражение одного типа данных к другому типу. Оператор приведения может также выполнять функцию оператора усечения.

Синтаксис


(type_spec) expression
        

Аргументы

  • type_spec
    Является допустимым типом данных SSIS.
  • expression
    Является допустимым выражением.

Типы результата

Тип данных type_spec. Дополнительные сведения см. в разделе Типы данных служб Integration Services.

Замечания

На следующей диаграмме перечислены допустимые операторы приведения.

Допустимые и недопустимые приведения между типами данных

Для приведения к некоторым типам данных необходимо задавать определенные параметры. В следующей таблице приведены эти типы данных и их параметры.

Тип данных Параметр Пример

DT_STR

charcount

codepage

Команда (DT_STR,30,1252) приводит 30 байт (или 30 символов) к значению типа DT_STR, используя кодовую страницу 1252.

DT_WSTR

Charcount

Команда (DT_WSTR,20) приводит 20 пар байт (или символов в формате Юникод) к значению типа DT_WSTR.

DT_BYTES

Bytecount

(DT_BYTES,50) приводит 50 байт к типу данных DT_BYTES.

DT_DECIMAL

Scale

(DT_DECIMAL,2) приводит числовое значение к типу данных DT_DECIMAL, используя масштаб 2.

DT_NUMERIC

Precision

Scale

(DT_NUMERIC,10,3) приводит числовое значение к типу данных DT_NUMERIC, используя точность 10 и масштаб 3.

DT_TEXT

Codepage

(DT_TEXT,1252) приводит значение к типу данных DT_TEXT, используя страницу кода 1252.

При использовании оператора приведения для преобразования дат необходимо учитывать дополнительные факторы.

  • При приведении строки к значению типа DT_DATE (или обратно) используется языковой стандарт преобразования.

    ms141704.note(ru-ru,SQL.90).gifПримечание.
    Согласно стандарту ISO дата задается в виде ГГГГ-ММ-ДД, однако в зависимости от языкового стандарта формат представления даты может меняться.

    Приведение строки к типу даты, отличному от DT_DATE, приводит к следующим результатам.

    Тип данных Формат даты

    DT_DBDATE

    гггг-мм-дд

    DT_FILETIME

    гггг-мм-дд чч:мм:сс:fff

    DT_DBTIME

    чч:мм:сс

    DT_DBTIMESTAMP

    гггг-мм-дд чч:мм:сс:fffffffff

В формате представления даты DT_FILETIME параметр fff имеет значение от 0 до 999. Данный формат соответствует формату системного времени Windows.

В формате представления даты DT_DBTIMESTAMP параметр fffffffff имеет значение от 0 до 999999999.

Если кодовая страница является многобайтовой, число байт и символов может не совпадать. При приведении преобразования данных типа DT_WSTR к данным типа DT_STR с одинаковым значением параметра charcount может произойти усечение символов в результирующей строке. При наличии соответствующего места в столбце целевой таблицы присвойте параметру charcount значение, равное числу байт, требующихся для многобайтовой кодовой страницы. Например при приведении символьных данных к формату DT_STR с использованием кодовой страницы 936 необходимо задать значение параметра charcount в два раза большее, чем количество символов в исходных данных. При преобразовании символьных данных с использованием кодовой страницы UTF-8 необходимо задать значение параметра charcount в четыре раза большее.

Примеры

В данном примере числовое значение приводится к целому.

(DT_I4) 3.57

В данном примере целое число преобразуется в символьную строку, используя кодовую страницу 1252.

(DT_STR,1,1252)5

В данном примере строка, состоящая из трех символов, преобразуется в двухбайтовые символы.

(DT_WSTR,3)"Cat"

В данном примере целое число преобразуется в десятичное с масштабом 2.

(DT_DECIMAl,2)500

В данном примере целое число преобразуется в число с точностью 7 и масштабом 3.

(DT_NUMERIC,7,3)4000

В данном примере значения столбца FirstName преобразуются из формата nvarchar длиной 50 в символьную строку, используя кодовую страницу 1252.

(DT_STR,50,1252)FirstName

В данном примере строковый литерал «True» преобразуется в логическое значение.

(DT_BOOL)"True"

См. также

Основные понятия

Очередность и ассоциативность операторов

Другие ресурсы

Операторы (службы SSIS)

Справка и поддержка

Получение помощи по SQL Server 2005