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


Типы данных служб Integration Services

Когда данные входят в поток данных в пакете, источник, извлекающий данные, преобразовывает их в тип данных служб Integration Services. Числовым данным назначается числовой тип данных, строковым — символьный тип данных, а датам — тип даты. Другим данным, таким как идентификатор GUID и BLOB (Binary Large Object Blocks), также назначаются соответствующие типы данных служб Integration Services. Если данные имеют тип, не преобразуемый в тип данных служб Integration Services, возникает ошибка.

Некоторые компоненты потока данных преобразуют типы данных между типами данных служб Integration Services и управляемыми типами данных Microsoft.NET Framework. Дополнительные сведения о сравнении между службами Integration Services и управляемыми типами данных см. в разделе Работа с типами данных в потоке данных.

В следующей таблице перечислены типы данных служб Integration Services. К некоторым из типов данных в таблице применяются сведения о масштабе и точности. Дополнительные сведения о точности и масштабе см. в разделе Точность, масштаб и длина (Transact-SQL).

Тип данных

Описание

DT_BOOL

Логическое значение.

DT_BYTES

Значение двоичных данных. Длину можно изменять. Максимальная длина составляет 8000 байт.

DT_CY

Значение денежного типа. Этот тип данных представляет собой восьмибайтовое целое число со знаком, с масштабом 4 и максимальной точностью в 19 цифр.

DT_DATE

Структура даты, состоящая из года, месяца, дня, часа, минуты, секунд и долей секунды. Фиксированный масштаб для долей секунд — 7 разрядов.

Тип данных DT_DATE представляет собой 8-байтовое число с плавающей запятой. Дни представлены целым числом, где за ноль принято значение полночь 30 декабря 1899. Значение часа выражается абсолютным значением дробной части числа. Тем не менее, значение с плавающей запятой не может представить все реальные значения, поэтому есть пределы отображения ряда дат в DT_DATE.

С другой стороны, тип данных DT_DBTIMESTAMP представлен структурой, имеющей внутри себя отдельные поля для года, месяца, дня, часов, минут, секунд и миллисекунд. Такой тип данных имеет более широкие границы диапазона дат, которые он может представлять.

DT_DBDATE

Структура даты, состоящая из года, месяца и дня.

DT_DBTIME

Структура времени, состоящая из часа, минуты и секунды.

DT_DBTIME2

Структура времени, состоящая из часа, минуты и секунды и долей секунды. Максимальный масштаб для долей секунд — 7 разрядов.

DT_DBTIMESTAMP

Структура timestamp, включающая год, месяц, день, час, минуты, секунды и доли секунд. Максимальный масштаб для долей секунд — 3 разряда.

DT_DBTIMESTAMP2

Структура timestamp, включающая год, месяц, день, час, минуты, секунды и доли секунд. Максимальный масштаб для долей секунд — 7 разрядов.

DT_DBTIMESTAMPOFFSET

Структура timestamp, включающая год, месяц, день, час, минуты, секунды и доли секунд. Максимальный масштаб для долей секунд — 7 разрядов.

В отличие от типов данных DT_DBTIMESTAMP и DT_DBTIMESTAMP2, тип данных DT_DBTIMESTAMPOFFSET имеет смещения часового пояса. Это смещение задает число часов и минут, на которое это время смещено относительно времени в формате UTC. Смещение часового пояса используется системой для получения местного времени.

Смещение часового пояса должно включать знак плюс или минус, чтобы показать, добавляется или вычитается смещение из времени в формате UTC. Для смещения в часах допускаются значения от -14 до +14. Знак смещения в минутах зависит от знака смещения в часах.

  • Если смещение часа имеет отрицательный знак, то смещение минуты также должно быть отрицательным или равняться нулю.

  • Если смещение часа имеет положительный знак, то смещение минуты также должно быть положительным или равняться нулю.

  • Если смещение часа равно нулю, то смещение минуты может иметь любое значение от отрицательного 0.59 до положительного 0.59.

DT_DECIMAL

Точное числовое значение с заданной точностью и фиксированным масштабом. Этот тип данных является 12-байтовым беззнаковым целым числом с отдельным знаком, масштабом от 0 до 28 и максимальной точностью 28.

DT_FILETIME

64-разрядное значение, представляющее количество 100-наносекундных интервалов с 1 января 1601 года. Максимальный масштаб для долей секунды равен трем цифрам.

DT_GUID

Глобальный уникальный идентификатор (GUID).

DT_I1

Однобайтовое целое число со знаком.

DT_I2

Двухбайтовое целое число со знаком.

DT_I4

Четырехбайтовое целое число со знаком.

DT_I8

Восьмибайтовое целое число со знаком.

DT_NUMERIC

Точное числовое значение с заданной точностью и масштабом. Этот тип данных является 16-байтовым беззнаковым целым числом с отдельным знаком, масштабом от 0 до 38 и максимальной точностью 38.

DT_R4

Значение с плавающей точкой одинарной точности.

DT_R8

Значение с плавающей точкой двойной точности.

DT_STR

Строка кодировки ANSI/многобайтной кодировки (MBCS), заканчивающаяся символом конца строки с максимальной длиной 8000 символов. (Если значение столбца содержит дополнительные символы конца строки, строка усекается в месте вхождения первого такого символа).

DT_UI1

Однобайтовое беззнаковое целое число.

DT_UI2

Двухбайтовое беззнаковое целое число.

DT_UI4

Четырехбайтовое беззнаковое целое число.

DT_UI8

Восьмибайтовое беззнаковое целое число.

DT_WSTR

Строка Юникод заканчивающаяся символом конца строки с максимальной длиной 4000 символов. (Если значение столбца содержит дополнительные символы конца строки, строка усекается в месте вхождения первого такого символа).

DT_IMAGE

Двоичное значение с максимальным размером 231—1 (2 147 483 647) байт. .

DT_NTEXT

Строка символов в Юникоде с максимальной длиной в 230-1 (1 073 741 823) символов.

DT_TEXT

Строка символов кодировки ANSI/многобайтной кодировки (MBCS) с максимальной длиной 231 — 1 (2 147 483 647) символов.

Преобразование типов данных

Если тип источника данных не требует распределения данных по всей ширине столбца, можно изменить тип данных столбца. Максимально короткие строки данных помогают оптимизировать производительность при передаче данных, так как чем короче каждая строка, тем быстрее данные перемещаются от источника к целевому объекту.

Службы Integration Services включают полный набор числовых типов данных, так что можно сопоставить типы данных с размером данных. Например, если значения в столбце с типом данных DT_UI8 всегда являются целыми числами от 0 до 3000, то можно изменить тип данных на DT_UI2. Подобным образом, если столбец с типом данных DT_CY соответствует требованиям данных пакета, используя целочисленный тип данных, можно изменить тип данных на DT_I4.

Можно изменить тип данных столбца следующим образом:

Преобразование между строковым типом данных и типами данных даты-времени

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

  • При использовании оператора приведения или преобразования «Конвертация данных» тип данных даты или времени будет преобразован в соответствующий строковый формат. Например, тип данных DT_DBTIME будет преобразован в строку в формате «hh:mm:ss».

  • Если нужно преобразовать строку в тип данных даты или времени, то строка должна быть представлена в формате соответствующего типа данных. Например, для успешного преобразования строки даты в тип данных DT_DBDATE она должна иметь формат «гггг-мм-дд».

    Тип данных

    Формат строки

    DT_DBDATE

    гггг-мм-дд

    DT_FILETIME

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

    DT_DBTIME

    чч:мм:сс

    DT_DBTIME2

    чч:мм:сс[.fffffff]

    DT_DBTIMESTAMP

    дд-мм-гггг чч:мм:сс:[.fff]

    DT_DBTIMESTAMP2

    дд-мм-гггг чч:мм:сс:[.fffffff]

    DT_DBTIMESTAMPOFFSET

    дд-мм-гггг чч:мм:сс[.ffffff] [{+|-} чч:мм]

В формате для типов данных DT_FILETIME и DT_DBTIMESTAMP параметр fff имеет значение от 0 до 999, представляющее доли секунды.

В формате даты для типов данных DT_DBTIMESTAMP2, DT_DBTIME2 и DT_DBTIMESTAMPOFFSET параметр fffffff имеет значение от 0 до 9999999, представляющее доли секунды.

В формат даты для типа данных DT_DBTIMESTAMPOFFSET также включен элемент часового пояса. Между элементами времени и часового пояса существует пробел.

Преобразование типов данных «дата-время»

Можно изменить тип данных столбца с данными «дата-время» для извлечения даты или временной части данных. В следующей таблице приводятся результаты переходов от одного типа данных «дата-время» к другому.

Преобразование из типа данных DT_FILETIME

Преобразование типа данных DT_FILETIME в

Результат

DT_FILETIME

Без изменений.

DT_DATE

Преобразует тип данных.

DT_DBDATE

Удаляет значение времени.

DT_DBTIME

Удаляет значение даты.

Удаляет значение доли секунды в том случае, если ее масштаб больше числа десятичных знаков, которое может содержать тип данных DT_DBTIME. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIME2

Удаляет значение даты, представленное типом данных DT_FILETIME.

Удаляет значение для долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIME2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMP

Преобразует тип данных.

DT_DBTIMESTAMP2

Удаляет значение для долей секунды, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIMESTAMP2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMPOFFSET

Устанавливает поле часового пояса для типа данных DT_DBTIMESTAMPOFFSET в нулевое значение.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIMESTAMPOFFSET. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

Преобразование из типа данных DT_DATE

Преобразовать тип данных DT_DATE в

Результат

DT_FILETIME

Преобразует тип данных.

DT_DATE

Без изменений.

DT_DBDATE

Удаляет значение времени, представленное типом данных DT_DATA.

DT_DBTIME

Удаляет значение даты, представленное типом данных DT_DATE.

DT_DBTIME2

Удаляет значение даты, представленное типом данных DT_DATE.

DT_DBTIMESTAMP

Преобразует тип данных.

DT_DBTIMESTAMP2

Преобразует тип данных.

DT_DBTIMESTAMPOFFSET

Устанавливает поле часового пояса для типа данных DT_DBTIMESTAMPOFFSET в нулевое значение.

Преобразование из типа данных DT_DBDATE

Преобразовать тип данных DT_DBDATE в

Результат

DT_FILETIME

Устанавливает поля времени для типа данных DT_FILETIME в нулевое значение.

DT_DATE

Устанавливает поля времени для типа данных DT_DATE в нулевое значение.

DT_DBDATE

Без изменений.

DT_DBTIME

Устанавливает поля времени для типа данных DT_DBTIME в нулевое значение.

DT_DBTIME2

Устанавливает поля времени для типа данных DT_DBTIME2 в нулевое значение.

DT_DBTIMESTAMP

Устанавливает поля времени для типа данных DT_DBTIMESTAMP в нулевое значение.

DT_DBTIMESTAMP2

Устанавливает поля времени для типа данных DT_DBTIMESTAMP в нулевое значение.

DT_DBTIMESTAMPOFFSET

Устанавливает поля времени для типа данных DT_DBTIME2 в нулевое значение.

Преобразование из типа данных DT_DBTIME

Преобразование типа данных DT_DBTIME в

Результат

DT_FILETIME

Устанавливает поля даты для типа данных DT_FILETIME в значения, соответствующие текущей дате.

DT_DATE

Устанавливает поля даты для типа данных DT_DATE в значения, соответствующие текущей дате.

DT_DBDATE

Устанавливает поля даты для типа данных DT_DBDATE в значения, соответствующие текущей дате.

DT_DBTIME

Без изменений.

DT_DBTIME2

Преобразует тип данных.

DT_DBTIMESTAMP

Устанавливает поля даты для типа данных DT_DBTIMESTAMP в значения, соответствующие текущей дате.

DT_DBTIMESTAMP2

Устанавливает поля даты для типа данных DT_DBTIMESTAMP2 в значения, соответствующие текущей дате.

DT_DBTIMESTAMPOFFSET

Устанавливает поля даты для типа данных DT_DBTIMESTAMPOFFSET в значения, соответствующие текущей дате, а поле часового пояса — в нулевое значение.

Преобразование из типа данных DT_DBTIME2

Преобразование типа данных DT_DBTIME2 в

Результат

DT_FILETIME

Устанавливает поля даты для типа данных DT_FILETIME в значения, соответствующие текущей дате.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_FILETIME. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DATE

Устанавливает поля даты для типа данных DT_DATE в значения, соответствующие текущей дате.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DATE. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBDATE

Устанавливает поля даты для типа данных DT_DBDATE в значения, соответствующие текущей дате.

DT_DBTIME

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIME. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIME2

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для целевого типа данных DT_DBTIME2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMP

Устанавливает поля даты для типа данных DT_DBTIMESTAMP в значения, соответствующие текущей дате.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIMESTAMP. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMP2

Устанавливает поля даты для типа данных DT_DBTIMESTAMP2 в значения, соответствующие текущей дате.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIMESTAMP2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMPOFFSET

Устанавливает поля даты для типа данных DT_DBTIMESTAMPOFFSET в значения, соответствующие текущей дате, а поле часового пояса — в нулевое значение.

Удаляет значение долей секунды, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIMESTAMPOFFSET. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

Преобразование из типа данных DT_DBTIMESTAMP

Преобразование типа данных DT_DBTIMESTAMP в

Результат

DT_FILETIME

Преобразует тип данных.

DT_DATE

Если значение, представленное типом данных DT_DBTIMESTAMP, превышает диапазон типа данных DT_DATE, то возвращается ошибка DB_E_DATAOVERFLOW. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBDATE

Удаляет значение времени, представленное типом данных DT_DBTIMESTAMP.

DT_DBTIME

Удаляет значение даты, представленное типом данных DT_DBTIMESTAMP.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIME. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIME2

Удаляет значение даты, представленное типом данных DT_DBTIMESTAMP.

Удаляет значение для долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIME2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMP

Без изменений.

DT_DBTIMESTAMP2

Удаляет значение для долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIMESTAMP2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMPOFFSET

Устанавливает поле часового пояса для типа данных DT_DBTIMESTAMPOFFSET в нулевое значение.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIMESTAMPOFFSET. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

Преобразование из типа данных DT_DBTIMESTAMP2

Преобразование типа данных DT_DBTIMESTAMP2 в

Результат

DT_FILETIME

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_FILETIME. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DATE

Если значение, представленное типом данных DT_DBTIMESTAMP2, превышает диапазон типа данных DT_DATE, то возвращается ошибка DB_E_DATAOVERFLOW. Дополнительные сведения см. в разделе Обработка ошибок в данных.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DATE. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBDATE

Удаляет значение времени, представленное типом данных DT_DBTIMESTAMP2.

DT_DBTIME

Удаляет значение даты, представленное типом данных DT_DBTIMESTAMP2.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIME. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIME2

Удаляет значение даты, представленное типом данных DT_DBTIMESTAMP2.

Удаляет значение для долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIME2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMP

Если значение, представленное типом данных DT_DBTIMESTAMP2, превышает диапазон типа данных DT_DBTIMESTAMP, то возвращается ошибка DB_E_DATAOVERFLOW.

Тип данных DT_DBTIMESTAMP2 сопоставляется с типом данных SQL Server — datetime2, имеющим диапазон от 1 января 1 года н.э. до 31 декабря 9999 г. Тип данных DT_DBTIMESTAMP сопоставляется с типом данных SQL Server — datetime, имеющим меньший диапазон значений: от 1 января 1753 г. до 31 декабря 9999 г.

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

Дополнительные сведения об ошибках см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMP2

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для целевого типа данных DT_DBTIMESTAMP2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMPOFFSET

Устанавливает поле часового пояса для типа данных DT_DBTIMESTAMPOFFSET в нулевое значение.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIMESTAMPOFFSET. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

Преобразование из типа данных DT_DBTIMESTAMPOFFSET

Преобразование типа данных DT_DBTIMESTAMPOFFSET в

Результат

DT_FILETIME

Изменяет значение времени, представленное типом данных DT_DBTIMESTAMPOFFSET, на значение в формате UTC.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_FILETIME. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DATE

Заменяет значение времени, представленное типом данных DT_DBTIMESTAMPOFFSET, значением в формате UTC.

Если значение, представленное типом данных DT_DBTIMESTAMPOFFSET, превышает диапазон типа данных DT_DATE, то возвращается ошибка DB_E_DATAOVERFLOW.

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

Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBDATE

Изменяет значение времени, представленное типом данных DT_DBTIMESTAMPOFFSET, на значение в формате UTC, что может повлиять на значение даты. Затем значение времени удаляется.

DT_DBTIME

Заменяет значение времени, представленное типом данных DT_DBTIMESTAMPOFFSET, значением в формате UTC.

Удаляет значение, представленное типом данных DT_DBTIMESTAMPEOFFSET.

Удаляет значение долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIME. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIME2

Заменяет значение времени, представленное типом данных DT_DBTIMESTAMPOFFSET, значением в формате UTC.

Удаляет значение даты, представленное типом данных DT_DBTIMESTAMPOFFSET.

Удаляет значение для долей секунд, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIME2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMP

Заменяет значение времени, представленное типом данных DT_DBTIMESTAMPOFFSET, значением в формате UTC.

Если значение, представленное типом данных DT_DBTIMESTAMPOFFSET, превышает диапазон типа данных DT_DBTIMESTAMP, то возвращается ошибка DB_E_DATAOVERFLOW.

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

Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMP2

Заменяет значение времени, представленное типом данных DT_DBTIMESTAMPOFFSET, значением в формате UTC.

Удаляет значение для долей секунды, если его масштаб больше числа разрядов, предусмотренного для типа данных DT_DBTIMESTAMP2. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

DT_DBTIMESTAMPOFFSET

Удаляет значение для долей секунды, если его масштаб больше числа разрядов, предусмотренного для целевого типа данных DT_DBTIMESTAMPOFFSET. После удаления долей секунд формируется отчет об усечении данных. Дополнительные сведения см. в разделе Обработка ошибок в данных.

Сопоставление типов данных служб Integration Services типам данных баз данных

В следующей таблице представлены рекомендации по сопоставлению типов данных, которые используются в определенных базах данных, с типами данных служб Integration Services. Эти сопоставления взяты из файлов сопоставления, которые использует мастер импорта и экспорта SQL Server при импорте данных из этих источников. Дополнительные сведения об этих файлах сопоставления см. в разделе Импорт и экспорт данных с помощью мастера импорта и экспорта SQL Server.

Важное примечаниеВажно!

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

Тип данных

SQL Server

(SQLOLEDB; SQLNCLI10)

SQL Server (SqlClient)

Jet

Oracle

(MSDAORA)

Oracle

(OracleClient)

DB2

(DB2OLEDB)

DB2

(IBMDADB2)

DT_BOOL

bit

bit

Bit

DT_BYTES

binary, varbinary, timestamp

binary, varbinary, timestamp

BigBinary, VarBinary

RAW

RAW

DT_CY

smallmoney, money

smallmoney, money

Currency

DT_DATE

DT_DBDATE

date

date

date

date

date

date

DT_DBTIME

timestamp

timestamp

время

время

DT_DBTIME2

time(p)

time(p)

DT_DBTIMESTAMP

datetime, smalldatetime

datetime, smalldatetime

DateTime

TIMESTAMP, DATE, INTERVAL

TIMESTAMP, DATE, INTERVAL

TIME, TIMESTAMP, DATE

TIME, TIMESTAMP, DATE

DT_DBTIMESTAMP2

datetime2

datetime2

timestamp

timestamp

timestamp

timestamp

DT_DBTIMESTAMPOFFSET

datetimeoffset(p)

datetimeoffset(p)

timestampoffset

timestampoffset

timestamp,

varchar

timestamp,

varchar

DT_DECIMAL

DT_FILETIME

DT_GUID

uniqueidentifier

uniqueidentifier

GUID

DT_I1

DT_I2

smallint

smallint

Short

SMALLINT

SMALLINT

DT_I4

int

int

Long

INTEGER

INTEGER

DT_I8

bigint

bigint

BIGINT

BIGINT

DT_NUMERIC

decimal, numeric

decimal, numeric

Decimal

NUMBER, INT

NUMBER, INT

DECIMAL, NUMERIC

DECIMAL, NUMERIC

DT_R4

real

real

Single

REAL

REAL

DT_R8

float

float

Double

FLOAT, REAL

FLOAT, REAL

FLOAT, DOUBLE

FLOAT, DOUBLE

DT_STR

char, varchar

VarChar

CHAR, ROWID, VARCHAR2

CHAR, VARCHAR

CHAR, VARCHAR

DT_UI1

tinyint

tinyint

Byte

DT_UI2

DT_UI4

DT_UI8

DT_WSTR

nchar, nvarchar, sql_variant, xml

char, varchar, nchar, nvarchar, sql_variant, xml

LongText

NVARCHAR2, NCHAR

CHAR, ROWID, VARCHAR2, NVARCHAR2, NCHAR

GRAPHIC, VARGRAPHIC

GRAPHIC, VARGRAPHIC

DT_IMAGE

image

image

LongBinary

LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, пользовательский

LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, пользовательский

CHAR () FOR BIT DATA, VARCHAR () FOR BIT DATA

CHAR () FOR BIT DATA, VARCHAR () FOR BIT DATA, BLOB

DT_NTEXT

ntext

text, ntext

NCLOB, NVARCHAR, TEXT

LONG, CLOB, NCLOB, NVARCHAR, TEXT

LONG VARCHAR, NCHAR, NVARCHAR, TEXT

LONG VARCHAR, DBCLOB, NCHAR, NVARCHAR, TEXT

DT_TEXT

text

CLOB, LONG

LONG VARCHAR FOR BIT DATA

LONG VARCHAR FOR BIT DATA, CLOB

Сведения о сопоставлении типов данных в потоке данных см. в разделе Работа с типами данных в потоке данных.

Значок служб Integration Services (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу служб Integration Services на узлах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.

См. также

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

Журнал изменений

Обновленное содержимое

Исправлено описание типа данных DT_DATE.