澳门新萄京SSIS 数据类型和类型转变

澳门新萄京SSIS 数据类型和类型转变

澳门新萄京 1

  • DT_DBDATE:date
  • DT_DBTIME2:time(p)
  • DT_DBTIMESTAMP:datetime
  • DT_DBTIMESTAMP2:datetime2
  • 转换成date:(DT_DBDATE)”yyyy-mm-dd”
  • 转换成time(n):(DT_DBTIME2,n)”hh:mm:ss[.fffffff]”
  • 转换成datetime:(DT_DBTIMESTAMP)”yyyy-mm-dd
    hh:mm:ss[.fff]”
  • 转换成datetime2(n):(DT_DBTIMESTAMP2,n)”yyyy-mm-dd
    hh:mm:ss[.fffffff]”

Map Query Parameters to Variables in an Execute SQL
Task

An implicit conversion of a data type
occurs when the expression evaluator automatically converts the data
from one data type to another. If the data in a column does not require
the full width allocated by the source data type, you might want to
change the data type of the column. Making each data row as narrow as
possible helps optimize performance when transferring data because the
narrower each row is, the faster the data is moved from source to
destination.

在SSIS中,字符串常量使用双引号“”,[] 表示可选:

楼主在调节和测试SSIS
Package时,使用ModifiedDate字段做增量更新,Package中使用Execute SQL
Task获取数据源中DataUpdateTime字段的最大值,并将该值赋值给变量:User::马克斯LastModifiedDate,Package运维成功,不过导入的数据量少于源数据;通过测试,开掘Date提姆e类型的变量,其时间部分只保留到秒,而不会图谋阿秒部分,导致导入的数据量少于源数据。

在Execute SQL Task引用变量时,必须在Parameter Mapping
Tab中安装参数的Data Type,请参考《Execute SQL Task
参数和变量的照耀》

SSIS
变量的数据类型,分裂于SSIS的数据类型,但都和SSIS的数据类型相包容,在张开表达式求值时,SSIS自动将变量的数据类型隐式转换到SSIS的数据类型,然后开始展览求值。

?

叁,强制类型转变

3,日期时间档次

  • Variable
    Name
    :变量的名字,变量的成效域分为UserSystem,使用
    :: 来引用作用域中的变量
  • Direction:参数的势头,分为输入参数(Input),输出参数(Output)和再次回到值(Returnvalue)
  • Data Type:参数的Data
    Type,必须和变量(Variable)的数据类型相相称
  • Parameter
    Name
    :参数名字,分裂的Connection Manager,其值不一致,对于OLEDB
    Connection
    Manager,使用0,1,贰等数值表示第多少个,第二个参数,第7个参数等。
  • Parameter
    Size
    :暗许值是-壹,表示让SSIS鲜明参数的尺寸。借使参数的数据类型是变长的(varchar或varbinary),必须设置参数的长度,为参数值分配丰裕长度的上空。

五,参数的数据类型

字符变量和TSQL数据类型的炫耀关系:

@<parameter name>

1,字符数据类型

  • DT_BOOL:bit
  • DT_UI1:tinyint,占用3个字节,非负整数,数值范围是:0-255
  • DT_I2:smallint,占用三个字节,有暗号整数
  • DT_I4:int,占用伍个字节,有标识整数
  • DT_I8:bigint,占用八个字节,有标识整数
  • DT_BYTES:binary, varbinary,
    RowVersion

SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID =
?

  • DT_BOOL:bit
  • DT_UI1:tinyint,占用多个字节,非负整数,数值范围是:0-255
  • DT_I2:smallint,占用1个字节,有号子整数
  • DT_I4:int,占用两个字节,有号子整数
  • DT_I8:bigint,占用七个字节,有记号整数
  • DT_BYTES:binary, varbinary,
    RowVersion
  • DT_DBDATE:date
  • DT_DBTIME2:time(p)
  • DT_DBTIMESTAMP:datetime
  • DT_DBTIMESTAMP2:datetime2

Connection type

壹,字符类型

Performance Comparison between Data Type
Conversion Techniques in SSIS
2008

澳门新萄京 2

三,日期/时间项目

SSIS的字符类型和TSQL的数据类型的应和关系:

留意:SSIS
变量的日期和时间项目只保留到秒,而数据库中的时间足以保留到飞秒位(一-5个人微秒数)

字符串分为双字节字符和单字节字符,对于单字节字符,SSIS使用 DT_STR代表,在威吓类型转变时,必须制定code page和字符长度:

数值类型分为整数和小数,SSIS的平头类型和TSQL数据类型的附和关系:

澳门新萄京 3

3,日期时间项目

贰,数值类型

在Parameter Mapping Tab中设置参数映射:

  • 转换成date:(DT_DBDATE)”yyyy-mm-dd”
  • 转换成time(n):(DT_DBTIME2,n)”hh:mm:ss[.fffffff]”
  • 转换成datetime:(DT_DBTIMESTAMP)”yyyy-mm-dd
    hh:mm:ss[.fff]”
  • 转换成datetime2(n):(DT_DBTIMESTAMP2,n)”yyyy-mm-dd
    hh:mm:ss[.fffffff]”

Variables have a Variant data type and
the expression evaluator converts the data type of a variable from a
Variant subtype to an Integration Services data type before it evaluates
the expression. 

动用OLEDB Connection Manager,使用 ? 表示二个参数,如图

SSIS 内置函数:GETDATE() 和 GETUTCDATE()
重返值的数据类型是DT_DBTIMESTAMP,对应TSQL的DateTime,由此,只保留四位飞秒。在Expression
Builder中,将时刻类型转变到字符串类型,显示的阿秒数有效数值唯有二位,末尾补四个0,共拾人:

TSQL的小数数值类型分为两类:准确小数(decimal)和接近小数(float),小数也叫实数(real),SSIS的小数类型和TSQL数据类型的相应关系:

  • VARCHAR: 映射TSQL的varchar
  • NVARCHAR: 映射TSQL的nvarchar

SSIS
变量的数据类型,区别于SSIS的数据类型,但都和SSIS的数据类型相包容,在拓展表达式求值时,SSIS自动将变量的数据类型隐式转变来SSIS的数据类型,然后开始展览求值。

伍,参数的数据类型

那五个变量定义为DateTime类型,经过测试,假若变量定义成String类型,实际上是平等的,时间只会准确到秒:

  • DateTime:对应TSQL的datetime
  • Object:对应TSQL的time,date,datetime2
  • 将字符串转产生bit:(DT_BOOL)”True”
  • 将小数转变到int:(DT_I4) 3.57
  • 将整数转化成精确小数:(DT_NUMERIC,7,3)4000

澳门新萄京 4

2,数值类型

Integration Services Data
Types.aspx)

在Execute SQL Task 艾德itor中,设置Parameter Mapping的分界面如下:

将数据从3个SQL Server 加载到另三个SQL
Server以前,假若急需转移数据类型,建议采纳TSQL
Conversion,那样,能简化Package的宏图,进步转变速度。

贰,数值类型

SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID =
@parmContactID

  • String:char,nchar,varchar(n),nvarchar(n)
  • object:varchar(max),nvarchar(max)
  • (DT_WSTR,30) GETDATE(),Evaluated
    Value是:2016-10-13 17:04:01.765000000
  • (DT_DBTIMESTAMP2,7)
    GETDATE(),Evaluated Value是:10/13/2016 5:01:54 PM

 澳门新萄京 5

Cast (SSIS
Expression).aspx)

SSIS 内置函数:GETDATE() 和 GETUTCDATE()
再次回到值的数据类型是DT_DBTIMESTAMP,对应TSQL的Date提姆e,由此,只保留肆人飞秒。在Expression
Builder中,将时间类型调换到字符串类型,呈现的飞秒数有效数值唯有3位,末尾补几个0,共九位:

楼主整理的参数的Data Type和TSQL 数据类型的照耀关系

  • 将整数5转变为单字节字符:(DT_STR,30,1252)5
  • 将整数伍更动为双字节字符:(DT_WSTR,30)5
  • 将 DT_DBTIMESTAMP 类型调换来字符串:(DT_WSTTiggo,30)GETDATE(),重回的数额格式是: 201陆-十-13
    1四:5伍:3一.247000000,GETDATE()再次回到的数据类型是DT_DBTIMESTAMP;
  • DateTime:对应TSQL的datetime
  • Object:对应TSQL的time,date,datetime2

SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID =
?

  • Boolean:bit
  • Int64:bigint
  • Int32:int
  • Int16:smallint
  • Byte:tinyint
  • object:binary, varbinary(n),
    varbinary(max)
  • 确切小数:Decimal 在SQL Server
    2012以后,对应TSQL的decimal
  • 接近小数:Single
    对应TSQL的float(24),  Double 对应TSQL的float(53)

二,转变来字符串

在动用OLEDB数据源导入数据时,使用如下的Where条件,就能够把装有的数据都导入到DW中。

四,数据类型调换的习性

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图