SSIS DataType Conversion

SSIS DataType Conversion 将表达式从一种数据类型显式转换为另一种数据类型,转换运算符还可以用作截断运算符。

类型转换的语法是: (type_spec)  expression

示例:

1,将一个数值转换为整数。

(DT_I4) 3.57

2,将整数转换为使用 1252 代码页的字符串。

(DT_STR,1,1252)5

3,将三字符的字符串转换为双字节字符。

(DT_WSTR,3)"Cat"

4,将整数转换为带两位小数的十进制数。

(DT_DECIMAl,2)500

5,将整数转换为带 3 位小数且精度为 7 的数值。

(DT_NUMERIC,7,3)4000

6,将 FirstName 列中的值(定义为 nvarchar 数据类型且长度 50)转换为使用 1252 代码页的字符串。

(DT_STR,50,1252)FirstName

7,将字符串文字“True”转换为布尔值。

(DT_BOOL)"True"

8,将字符串文字转换为 DT_DBDATE。

(DT_DBDATE) "1999-10-11"

9,将字符串文字转换为使用 5 位小数秒的 DT_DBTIME2 数据类型。(对于 DT_DBTIME2 数据类型可以指定 0 到 7 位小数秒。)

(DT_DBTIME2, 5) "16:34:52.12345"

10,将字符串文字转换为使用 4 位小数秒的 DT_DBTIMESTAMP2 数据类型。(对于 DT_DBTIMESTAMP2 数据类型可以指定 0 到 7 位小数秒。)

(DT_DBTIMESTAMP2, 4) "1999-10-11 16:34:52.1234"

11,将字符串文字转换为使用 7 位小数秒的 DT_DBTIMESTAMPOFFSET 数据类型。(对于 DT_DBTIMESTAMPOFFSET 数据类型可以指定 0 到 7 位小数秒。)

(DT_DBTIMESTAMPOFFSET, 7) "1999-10-11 16:34:52.1234567 + 5:35"

12,为某些数据类型转换时需要参数。下表列出了这些数据类型及其参数。


数据类型


参数


示例


DT_STR


charcount

codepage


(DT_STR,30,1252) 将 30 个字节(即 30 个单字符)转换为使用 1252 代码页的 DT_STR 数据类型。


DT_WSTR


Charcount


(DT_WSTR,20) 将 20 个字节对(即 20 个 Unicode 字符)转换为 DT_WSTR 数据类型。


DT_BYTES


Bytecount


(DT_BYTES,50) 将 50 个字节的数据转换为 DT_BYTES 数据类型。


DT_DECIMAL


Scale


(DT_DECIMAL,2) 将数值转换为带 2 位小数的 DT_DECIMAL 数据类型。


DT_NUMERIC


Precision

Scale


(DT_NUMERIC,10,3) 将数值转换为带 3 位小数且精度为 10 的 DT_NUMERIC 数据类型。


DT_TEXT


Codepage


(DT_TEXT,1252) 将值转换为使用 1252 代码页的 DT_TEXT 数据类型。

13,MSDN URLhttps://msdn.microsoft.com/zh-cn/library/ms141704(v=sql.100).aspx

附表:SSIS to SQL Server Data Type Translations

SSIS Data Type SSIS Expression SQL Server
single-byte signed integer (DT_I1)  
two-byte signed integer (DT_I2) smallint
four-byte signed integer (DT_I4) int
eight-byte signed integer (DT_I8) bigint
single-byte unsigned integer (DT_UI1) tinyint
two-byte unsigned integer (DT_UI2)  
four-byte unsigned integer (DT_UI4)  
eight-byte unsigned integer (DT_UI8)  
float (DT_R4) real
double-precision float (DT_R8) float
string (DT_STR, «length», «code_page») char, varchar
Unicode text stream (DT_WSTR, «length») nchar, nvarchar, sql_variant, xml
date (DT_DATE) date
Boolean (DT_BOOL) bit
numeric (DT_NUMERIC, «precision», «scale») decimal, numeric
decimal (DT_DECIMAL, «scale») decimal
currency (DT_CY) smallmoney, money
unique identifier (DT_GUID) uniqueidentifier
byte stream (DT_BYTES, «length») binary, varbinary, timestamp
database date (DT_DBDATE) date
database time (DT_DBTIME)  
database time with precision (DT_DBTIME2, «scale») time(p)
database timestamp (DT_DBTIMESTAMP) datetime, smalldatetime
database timestamp with precision (DT_DBTIMESTAMP2, «scale») datetime2
database timestamp with timezone (DT_DBTIMESTAMPOFFSET, «scale») datetimeoffset(p)
file timestamp (DT_FILETIME)  
image (DT_IMAGE) image
text stream (DT_TEXT, «code_page») text
Unicode string (DT_NTEXT) ntext
时间: 2024-08-30 16:42:24

SSIS DataType Conversion的相关文章

PHP Datatype Conversion Safety Risk、Floating Point Precision、Operator Security Risk、Safety Coding Principle

catalog 0. 引言 1. PHP operator introduction 2. 算术运算符 3. 赋值运算符 4. 位运算符 5. 执行运算符 6. 递增/递减运算符 7. 数组运算符 8. 类型运算符 9. PHP自动类型转换 10. 浮点数运算中的精度损失 11. 比较运算符 0. 引言 本文试图讨论PHP中因为运算符导致的各种安全问题/风险/漏洞,其他很多本质上并不能算PHP本身的问题,而更多时候在于PHP程序员对语言本身的理解以及对安全编码规范的践行,我们逐个讨论PHP中的运

DbUtils使用例子

DbUtils: JDBC Utility Component Examples This page provides examples that show how DbUtils may be used. Basic Usage DbUtils is a very small library of classes so it won't take long to go through the javadocs for each class. The core classes/interface

Data Flow ->> Excel Connection遇到错误:[Excel Source [16]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.....

在SSIS下做Excel导入数据的时候遇到下面的错误 [Excel Source [16]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0209303. T

SSIS 阻塞,半阻塞和全阻塞 (Non-blocking, semi-blocking and Fully-blocking) transformations清单

三种Blocking类型,这里跟数据流的Buff关系很大:■■ non-blocking transformations,每一行直接转换输出,没有等待.■■ partial-blocking transformation,直到存储一定数量的好才输出.■■ blocking transformation, 在输出前必须先读入所有行. Logical Row-Level Transformations Data   flow transformation purpose blocking type

SSIS 自测题-数据流控件类

说明:以下是自己的理解答案,不是标准的答案,如有不妥烦请指出.         有些题目暂时没有答案,有知道的请留言,互相学习,一起进步. 133.请描述一下 Conditional Split 的使用方法和使用场景? 它可以写表达式吗? 它可以访问到上游数据的列,变量,以及使用函数吗?    根据不同的列的值,决定数据流的路径,可以写表达式进行判断,只能访问系统变量,用户变量,可以使用函数134.请描述一下 Data Conversion 与 Derived Column 的使用方法,以及它们

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   (三)SSIS的简介   (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介绍一下)   (六)SSIS操作过程(生成Package,用来调用)(下一篇随笔将详细讲解制作Package包的过程,图片太多,篇幅过长,因此本文将直接采用生成的Package包进行

微软BI 之SSIS 系列 - ErrorOutput 错误输出与处理

在实际项目中,特别是从某数据源抽取数据到目标表的时候,我相信大家经常碰到的几种情况有: 1. 加载数据的时候在数据源端控件出现错误. 2. 数据源端的错误解决了,但是在数据目标控件位置又出现了错误. 3. 通过增加 Data Conversion 进行数据类型转换可能解决了错误使得整个流程成功了,但是为什么? 数据源端出现的错误. 目标端出现的错误. 可能存在的需求: 1. 遇到错误就忽略 2. 需要将错误数据导出到错误表以便查看 除了上述可能存在的需要解决的问题和需求,还有以下几个问题: 上图

SSIS 事务处理

事务用于处理数据的一致性,处于同一个事务中的操作是一个工作单元,要么全部执行成功,要么全部执行失败.SSIS默认支持Task组件级别的事务.在默认情况下,单个Task组件在开始执行时,会打开连接,开启一个事务,等到Task组件执行完成,提交事务,关闭连接,也就是说,默认情况下,单个Task组件在单个事务中执行查询,因此,在单个Execute SQL Task组件中执行大量的TSQL脚本,不是明智的选择,因为,这会导致日志文件的激增.如果Task组件执行失败,SSIS引擎自动进行回滚Task级别上

SSIS教程:创建简单的ETL包 -- 4. 增加错误处理流程(Adding Error Flow Redirection)

为了处理在转换过程中可能发生的错误,MicrosoftIntegration Services 允许根据每个组件和每个列来决定如何处理无法转换的数据. 可以选择忽略某些列中的失败.重定向整个失败的行或者只是使组件失败. 默认情况下,Integration Services 中的所有组件被配置为在发生错误时失败. 而使组件失败又会导致包失败,并使所有后续处理停止. 如果不让失败导致包停止执行,一个好方法是通过配置使在转换中发生潜在处理错误时这些错误能够得到处理. 虽然可能选择忽略失败以确保包成功运