【问题标题】:Create SSIS package to import from one of many data sources创建 SSIS 包以从多个数据源之一导入
【发布时间】:2012-01-31 15:49:49
【问题描述】:

是否可以创建一个可以传递文件(通过变量)并根据变量确定要使用哪个数据流任务的 SSIS 包?

我想做的是创建一个单独的 DTSX 包,它可以将文件名作为变量接收并检测(仅从文件名)它是 Excel 2003、Excel 2007 还是 CSV 文件,并且来自即,执行正确的数据流任务。导入数据后,我将在另一个数据流任务中处理结果。

我很久以前就使用过 SSIS,现在我才重新开始使用它,所以我的知识被锁定了,并且会慢慢恢复。我似乎不记得(或在 Google 上找到)在控制流中创建条件拆分的方法。

有什么想法吗?

【问题讨论】:

    标签: sql-server-2008 ssis


    【解决方案1】:

    正如 HLGEM 所指出的,只要内部结构一致,这样的事情就足够了。

    我已经声明了一个包级变量DatFlowSelector,并且在我的初始脚本任务中,我将使用逻辑来根据您要使用的FileName 变量来确定流应该采用的路径。

    连接预期输出后,使用 Precedence Constraint 编辑器确定哪个路径评估为真。我的逻辑很简单 @[User::DataFlowSelector] == N 其中 N 映射到我的脚本分配的值。

    当我修改约束时,我通常将ShowAnnotation 属性切换为“ConstraintOptions”,因为它使未来的维护者可以立即清楚地知道发生了什么事情。 SQL 2012 在这种情况下会有所帮助,因为它将fx 字形分配给连接器,但显示逻辑可以提供对合理逻辑的一目了然的确认。

    【讨论】:

      【解决方案2】:

      我对控制流中的每个循环都做了类似的事情。它遍历处理目录中的所有文件,并根据文件名将它们定向到正确的数据流(因为它们都是相同的文件类型但具有不同的内部结构)。

      【讨论】:

        猜你喜欢
        • 2013-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多