Типы данных служб Integration Services
Изменения: 15 сентября 2007 г.
Когда данные входят в поток данных в пакете, источник, извлекающий данные, преобразовывает их в тип данных служб Integration Services. Числовым данным назначается числовой тип данных, строковым — символьный тип данных, а датам — тип даты. Другим данным, таким как идентификатор GUID и BLOB (Binary Large Object Blocks), также назначаются соответствующие типы данных служб Integration Services. Если данные имеют тип, не преобразуемый в тип данных служб Integration Services, возникает ошибка.
Некоторые компоненты потока данных преобразуют типы данных между типами данных служб Integration Services и управляемыми типами данных Microsoft .NET Framework. Дополнительные сведения о сравнении между службами Integration Services и управляемыми типами данных см. в разделе Mapping Data Types in the Data Flow.
В следующей таблице перечислены типы данных служб Integration Services.
Тип данных | Описание |
---|---|
DT_BOOL |
Логическое значение. |
DT_BYTES |
Значение двоичных данных. Длину можно изменять. Максимальная длина составляет 8000 байт. |
DT_CY |
Значение денежного типа. Этот тип данных представляет собой восьмибайтовое целое число со знаком, с масштабом 4 и максимальной точностью 19. |
DT_DATE |
Структура даты, состоящая из года, месяца, дня и часа. Тип данных DT_DATE представляет собой 8-байтовое число с плавающей запятой. Дни представлены целым числом, где за ноль принято значение полночь 30 декабря 1899. Значение часа выражается абсолютным значением дробной части числа. Тем не менее, значение с плавающей запятой не может представить все реальные значения, поэтому есть пределы отображения ряда дат в DT_DATE. С другой стороны, тип данных DT_DBTIMESTAMP представлен структурой, имеющей отдельные поля для года, месяца, дня, часов, минут, секунд и миллисекунд. Такой тип данных не имеет ограничений по диапазону дат, которые он может представлять. |
DT_DBDATE |
Структура даты, состоящая из года, месяца и дня. |
DT_DBTIME |
Структура времени, состоящая из часа, минуты и секунды. |
DT_DBTIMESTAMP |
Структура временной метки, состоящая из года, месяца, суток, часа, минуты, секунды и миллисекунды. |
DT_DECIMAL |
Точное числовое значение с заданной точностью и фиксированным масштабом. Этот тип данных является 12-байтовым беззнаковым целым числом с отдельным знаком, масштабом от 0 до 28 и максимальной точностью 29. |
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_DBTIMESTAMP на DT_DBTIME, то доступны только значения: часы, минуты и секунды.
Можно изменить тип данных столбца следующим образом:
- Использование преобразования для замены значений столбца на результаты выражения или для создания копии столбца, имеющего тип данных отличный от типа исходного столбца. Дополнительные сведения см. в разделе Преобразование «Производный столбец».
- Использование преобразования для приведения типа данных столбца к другому типу. Дополнительные сведения см. в разделе Преобразование «Конвертация данных».
![]() |
---|
Значения логического типа не являются числовыми. Хотя логические значения в некоторых средах могут отображаться как числа, они хранятся не в виде чисел, при этом разные языки программирования представляют их в виде числовых значений по-разному, как и методы среды .NET Framework. Например, функции преобразования языка Visual Basic преобразуют True в значение -1, однако метод System.Convert.ToInt32 в среде .NET Framework преобразует True в значение +1. Язык выражений службы Integration Services преобразует True в значение -1. Чтобы избежать ошибок или непредвиденных результатов, следует писать программный код, который предусматривает конкретные числовые значения для True и False. Там, где возможно, необходимо ограничить использование переменных логического типа соответствующими логическими значениями. |
Сопоставление типов данных служб Integration Services и типов данных базы данных
В следующей таблице представлены рекомендации по сопоставлению типов данных, которые используются в определенных базах данных, с типами данных служб Integration Services. Эти сопоставления взяты из файлов сопоставлений, которые использует мастер импорта и экспорта SQL Server при импорте данных из этих источников. Дополнительные сведения о файлах сопоставлений см. в разделе Создание пакетов при помощи мастера экспорта и импорта SQL Server.
![]() |
---|
Приведенные здесь сопоставления не представляют полного соответствия, а приводятся лишь в качестве рекомендации. В определенных условиях следует использовать другие типы данных вместо тех, которые перечислены в таблице. |
Тип данных | SQL Server (SQLOLEDB; SQLNCLI) | 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 |
|||||||
DT_DBTIME |
|||||||
DT_DBTIMESTAMP |
datetime, smalldatetime |
datetime, smalldatetime |
DateTime |
TIMESTAMP, DATE, INTERVAL |
TIMESTAMP, DATE, INTERVAL |
TIME, TIMESTAMP, DATE |
TIME, TIMESTAMP, DATE |
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 |
Сведения о сопоставлении типов данных в потоке данных см. в разделе Mapping Data Types in the Data Flow.
См. также
Основные понятия
Работа с данными в потоке данных
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
15 сентября 2007 г. |
|
17 июля 2006 г. |
|
5 декабря 2005 г. |
|