是否可以创建一个可以传递文件(通过变量)的SSIS包,并从变量中确定要使用哪个数据流任务?
我希望能够创建一个单独的DTSX软件包,它可以将文件名作为变量并检测(仅根据文件名),如果它是Excel 2003,Excel 2007或CSV文件,并且来自,执行正确的数据流任务。然后,我将在导入数据后在另一个数据流任务中处理结果。
我很久以前就使用过SSIS,而我只是回来使用它,所以我的知识被锁定并且会慢慢回来。我似乎无法记住(或在Google上找到)在控制流中创建条件分割的方法。
有什么想法吗?
答案 0 :(得分:1)
我在控制流程中为每个循环执行了类似的操作。它遍历处理目录中的所有文件,并根据文件名将它们定向到正确的数据流(因为它们都是相同的文件类型,但具有不同的内部结构)。
答案 1 :(得分:1)
正如HLGEM指出的那样,只要内部结构一致,这样的事情就足够了。
我已经声明了一个包级变量DatFlowSelector
,并且在我的初始脚本任务中,我会使用逻辑来确定流应根据您要访问的FileName
变量采取的路径使用
在连接预期输出后,使用Precedence Constraint编辑器确定哪条路径的计算结果为true。我的逻辑只是@[User::DataFlowSelector] == N
,其中N映射到我的脚本分配的值。
当我修改约束时,我通常会将ShowAnnotation
属性切换为“ConstraintOptions”,因为它会让未来的维护者立即明白有什么事情发生。在这种情况下,SQL 2012将帮助将fx
字形分配给连接器,但显示逻辑可以提供声音逻辑的一目了然。