OleDb Source component 主要是从DB中获取数据,传递给下游组件,OleDb Source component的强大之处在于 query data 的mode有四种,如图
Table or View:直接传递table或view
Table name or view name variable : 将一个table或view的name存放在package的一个variable中
Sql command:输入sql command,并可以使用参数,在sql command中参数以 ? 代表
sql command from variable:将sql command 保存在package的一个variable中
这四种 Data Access Mode 中,各有各自的用途:
1,table or view
最简单的一种方式,直接获取整个table或view的数据,但是可以在Columns中只select 部分列,这样能减少传递到下游组件的数据量,四种Data Access Mode都可以部分传递数据列。
2,table name or view name from variable
这种mode是将table name或view name存放在package的variable中,可以在package中动态改变variable的值,vision是美好的,但是由于 DataSource 决定了Columns的结构,所以,在package中动态改变variable的值,从不同的datasource中query 数据,必须保证 columns的结构是相同的,否则package fail in running
3,sql command
这种mode有很大的灵活性和适用性,原因是sql command mode能够使用parameter,这是多么激动人心的设计。
参数通过 Parameters来指定,可以把传递给sql command的参数存储在一个package variable中,在package中动态修改 package variable的值,来query不同的data。
示例:参数并不是使用@VariableName,而是使用一个?,这是OLEDB Source的特殊之处,每一个?都代表一个parameter,由于 ?在Sql Command出现的顺序是固定的,因此可以通过序号0,1,2(序号从0开始)来定位到每一个参数。
在Parameters中 map 参数 ?的序号 和 package variable,进而将package variable的值传递给sql command。
4,sql command from variable
这种mode是将sql command存储在package variable,不能使用parameter