Data4Strategy

——合抱之木,生于毫末;九层之台,起于累土

【原创】SSIS-执行包任务调用子包且子包读取父包变量

背景:

有时候需要将一个个开发好的独立的ETL包串接起来形成一个独立而庞大的包,如:每家分公司都开发不同的ETL包,最后使用执行包任务来将这些分公司的包给串联起来形成一个独立而完整运行的ETL包,此时我们就需要使用执行包任务,而子包中如果需要读取父包中的变量等信息,那我们就还需要配置子包的包配置为使用父包变量,以便能将父包的变量传递给子包使用。

 

事例:

将父包的一个变量传递给子包输出

 image

新建Child.dtsx包,并创建一个变量,以便接受父包中的传递变量值,这里我们使用脚本组件show出父包传递的变量值,脚本组件代码如下:

 

public void Main()
   {
         MessageBox.Show(Dts.Variables["ParVarValue"].Value.ToString());
         Dts.TaskResult = (int)ScriptResults.Success;
   }

 

新建Parent.dtsx包,并创建一个变量,以存储一个要传递给子包的变量值,并且拖拉一个执行包任务,新建一个文件连接到Child.dtsx包    image

image

image

配置Child.dtsx包的包配置为启用父包变量

image

最后执行,子包弹出信息

image

posted @ 2013-10-31 15:01  John.Xiong  阅读(797)  评论(0编辑  收藏  举报