Integration Services 数据类型
当数据进入包中的数据流时,提取这些数据的源会将数据转换为 Integration Services 数据类型。为数值数据分配数值数据类型,为字符串数据分配字符数据类型,为日期分配日期数据类型。其他数据,如 GUID 和二进制大型对象块 (BLOB),也要分配相应的 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 字节浮点数字来实现的。日以整数增量表示,从 1899 年 12 月 30 日开始,午夜时间为零点。小时值以数字的小数部分的绝对值表示。但是,浮点值无法表示所有实数值;因此,可以在 DT_DATE 中显示的日期的范围受到限制。 另一方面,DT_DBTIMESTAMP 以内部具有单独的年、月、日、小时、分钟、秒和毫秒字段的结构表示。此数据类型对其能够表示的日期有较大的范围限制。 |
DT_DBDATE |
由年、月和日组成的日期结构。 |
DT_DBTIME |
由小时、分钟和秒组成的时间结构。 |
DT_DBTIME2 |
由小时、分钟、秒和小数秒组成的时间结构。小数秒的最大小数位数为 7。 |
DT_DBTIMESTAMP |
由年、月、日、小时、分钟、秒和小数秒组成的时间戳结构。小数秒的固定小数位数为 3。 |
DT_DBTIMESTAMP2 |
由年、月、日、小时、分钟、秒和小数秒组成的时间戳结构。小数秒的最大小数位数为 7。 |
DT_DBTIMESTAMPOFFSET |
由年、月、日、小时、分钟、秒和小数秒组成的时间戳结构。小数秒的最大小数位数为 7。 与 DT_DBTIMESTAMP 和 DT_DBTIMESTAMP2 数据类型不同,DT_DBTIMESTAMPOFFSET 数据类型具有时区偏移量。此偏移量指定时间相对于协调世界时 (UTC) 偏移的小时和分钟数。系统使用时区偏移量获取本地时间。 时区偏移量必须包括符号(加或减)以表示是用 UTC 加上还是减去偏移量。偏移量的有效小时数介于 -14 和 +14 之间。分钟偏移量的符号取决于小时偏移量的符号:
|
DT_DECIMAL |
精度和小数位数固定的精确数值。此数据类型为具有单独符号的十二字节无符号整数,其小数位数为 0 到 28,最大精度为 29。 |
DT_FILETIME |
64 位值,表示从 1601 年 1 月 1 日起长度为 100 纳秒的间隔的数量。小数秒的最大小数位数为 3。 |
DT_GUID |
全局唯一标识符 (GUID)。 |
DT_I1 |
单字节有符号整数。 |
DT_I2 |
双字节有符号整数。 |
DT_I4 |
四字节有符号整数。 |
DT_I8 |
八字节有符号整数。 |
DT_NUMERIC |
精度和小数位数固定的精确数值。此数据类型为具有单独符号的十六字节无符号整数,其小数位数为 0 到 38,最大精度为 38。 |
DT_R4 |
单精度浮点值。 |
DT_R8 |
双精度浮点值。 |
DT_STR |
以 null 值结束的 ANSI/MBCS 字符串,最大长度为 8000 个字符。(如果列值包含其他 null 终止符,则字符串将在第一个 Null 值出现的位置截断。) |
DT_UI1 |
单字节无符号整数。 |
DT_UI2 |
双字节无符号整数。 |
DT_UI4 |
四字节无符号整数。 |
DT_UI8 |
八字节无符号整数。 |
DT_WSTR |
以 Null 值结束的 Unicode 字符串,最大长度为 4000 个字符。(如果列值包含其他 Null 终止符,则字符串将在第一个 Null 值出现的位置截断。) |
DT_IMAGE |
二进制值,最大大小为 231-1 (2,147,483,647) 个字节。. |
DT_NTEXT |
Unicode 字符串,最大长度为 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。
可以按以下方法更改列的数据类型:
使用表达式隐式转换数据类型。有关详细信息,请参阅表达式中的隐式数据类型转换、表达式中的 Integration Services 数据类型和在包中使用表达式。
使用转换运算符转换数据类型。有关详细信息,请参阅Cast(SSIS 表达式):转换 SSIS 数据类型。
使用数据转换将列的数据类型从一种数据类型转换为另一种数据类型。有关详细信息,请参阅数据转换。
使用派生列转换创建数据类型与原始列数据类型不同的列的副本。有关详细信息,请参阅派生列转换。
字符串和日期/时间数据类型之间的转换
下表列出了日期/时间数据类型和字符串之间的转换结果:
使用转换运算符或数据转换转换时,日期或时间数据类型将转换为相应的字符串格式。例如,DT_DBTIME 数据类型将转换为格式为“hh:mm:ss”的字符串。
要从字符串转换为日期或时间数据类型时,该字符串必须使用与相应的日期或时间数据类型对应的字符串格式。例如,若要将某些日期字符串成功转换为 DT_DBDATE 数据类型,这些日期字符串的格式必须为“yyyy-mm-dd”。
数据类型
字符串格式
DT_DBDATE
yyyy-mm-dd
DT_FILETIME
yyyy-mm-dd hh:mm:ss:fff
DT_DBTIME
hh:mm:ss
DT_DBTIME2
hh:mm:ss[.fffffff]
DT_DBTIMESTAMP
yyyy-mm-dd hh:mm:ss[.fff]
DT_DBTIMESTAMP2
yyyy-mm-dd hh:mm:ss[.fffffff]
DT_DBTIMESTAMPOFFSET
yyyy-mm-dd hh:mm:ss[.fffffff] [{+|-} hh:mm]
在 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_DBTIMESTAMPOFFSET 数据类型的时间字段和时区字段设置为零。 |
从 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 日到公元 9999 年 12 月 31 日。DT_DBTIMESTAMP 映射到 SQL Server 数据类型 datetime,具有较小的范围:从 1753 年 1 月 1 日到 9999 年 12 月 31 日。 当小数秒值的小数位数超过 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 (OracleClient) |
DB2 (DB2OLEDB) |
DB2 (IBMDADB2) |
---|---|---|---|---|---|---|
DT_BOOL |
bit |
bit |
Bit |
|||
DT_BYTES |
binary、varbinary、timestamp |
binary、varbinary、timestamp |
BigBinary、VarBinary |
RAW |
||
DT_CY |
smallmoney、money |
smallmoney、money |
Currency |
|||
DT_DATE |
||||||
DT_DBDATE |
date |
date |
date |
date |
date |
|
DT_DBTIME |
timestamp |
time |
time |
|||
DT_DBTIME2 |
time(p) |
time(p) |
||||
DT_DBTIMESTAMP |
datetime、smalldatetime |
datetime、smalldatetime |
DateTime |
TIMESTAMP、DATE、INTERVAL |
TIME、TIMESTAMP、DATE |
TIME、TIMESTAMP、DATE |
DT_DBTIMESTAMP2 |
datetime2 |
datetime2 |
timestamp |
timestamp |
timestamp |
|
DT_DBTIMESTAMPOFFSET |
datetimeoffset(p) |
datetimeoffset(p) |
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 |
DECIMAL、NUMERIC |
DECIMAL、NUMERIC |
DT_R4 |
real |
real |
Single |
REAL |
REAL |
|
DT_R8 |
float |
float |
Double |
FLOAT、REAL |
FLOAT、DOUBLE |
FLOAT、DOUBLE |
DT_STR |
char、varchar |
VarChar |
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 |
CHAR、ROWID、VARCHAR2、NVARCHAR2、NCHAR |
GRAPHIC、VARGRAPHIC |
GRAPHIC、VARGRAPHIC |
DT_IMAGE |
image |
image |
LongBinary |
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 |
LONG、CLOB、NCLOB、NVARCHAR、TEXT |
LONG VARCHAR、NCHAR、NVARCHAR、TEXT |
LONG VARCHAR、DBCLOB、NCHAR、NVARCHAR、TEXT |
|
DT_TEXT |
text |
LONG VARCHAR FOR BIT DATA |
LONG VARCHAR FOR BIT DATA、CLOB |
有关在数据流中映射数据类型的信息,请参阅在数据流中使用数据类型。
外部资源
blogs.msdn.com 上的博客文章 SSIS 2008 中不同数据类型转换技术的性能比较。
|