BI 问号和foreach loop中的index=0

http://www.cnblogs.com/zzkun/p/4580673.html

SSIS之Foreach循环容器用法

 

要实现的业务:A数据库服务器上某库的T_GOODS_DECL的状态字段“Is_Delete”标记为“1”的时候删除B数据库服务器上对应库的T_GOODS_DECL表中的记录,二者的主键为“DECL_NO”。

总体设计图,实现原理:上一步骤将结果集传递到循环容器中,容器逐行取数据来执行容器里面的SQL任务。

第一步:建立“获取标记为已删除的DECL_NO”执行SQL任务

选择正确的数据连接器。

填写查询SQL语句。

结果集选项一定要选择“完整结果集”。

结果集对应中结果名称必须设为“0”,并新建对应的变量名。

新建的变量为object类型。

第二步:建立Foreach循环容器。

选择Foreach ADO 枚举器。

对象源变量选择之前定义的DeclNOs。

变量映射中,定义变量对应结果集中第一列数据,即索引0处。(如果select很多列,每一次foreach出来的是以行为单位的,显示一行的 第几列),index在此时就是某一行中的某个列。

然而对于foreach的源是file system的就不行了。 index是某个file的来源,每次本来就只读一个文件,所以index每次就是0,就算你设置了index为2,3,4,5,其实应该报错的,但是他有包容措施,读取的还是第一个index=0的内容

 

 

 

变量定义为String类型即可。

第三步:建立“按照DECL_NO删除数据”执行SQL任务。

选择正确的数据连接器。

填写删除动作的SQL语句,“?”表示变量。

参数映射中选择正确的变量名,使“?”接收正确的值。

所有设置完成以后,点击“执行包”,即可成功。

 

posted @ 2016-10-10 17:03  阿玛  阅读(375)  评论(0)    收藏  举报