【问题标题】:SSIS: add non-existent column to a CSV sourceSSIS:将不存在的列添加到 CSV 源
【发布时间】:2016-08-24 09:58:08
【问题描述】:

我正在使用标准 SSIS 方法将一大组(成千上万个)CSV 文件加载到单个暂存 sql 服务器表中。

绝大多数源 CSV 文件具有相同的列结构(顺序、列集、数据类型)。总共有大约 140 列。

但是,在某些 (

如果(且仅当)物理源 CSV 文件中不存在该列,我能否以某种方式为源 CSV 连接创建一个“虚拟”列(填充 NULL/空/空白值)?

我知道我可以使用 C# 脚本组件读取 CSV 标头并创建多个源连接,并根据某些列的存在(或缺失)重定向到正确的数据流,但我希望更“优雅”解决方案,只需一个“智能”的 CSV 数据源就可以“人为地”添加源文件中缺少的空白列。

为简单起见,我们假设完整的列集是:

ID;C1;C2;C3

C3 偶尔会丢失,即一些 CSV 文件是:

ID;C1;C2

欢迎任何提示。

【问题讨论】:

    标签: sql-server csv ssis multiple-columns


    【解决方案1】:

    不,SSIS 中没有内置“智能”CSV 数据源。

    您当然需要使用脚本组件,但您可以简单地创建一个具有脚本组件作为数据源的数据流,而不是在数据流之外使用脚本任务将控制流引导到正确的数据流.脚本组件读取当前正在导入的 CSV,如果相关列丢失,它会为其提供 NULL 或默认值。

    【讨论】:

    • 似乎合法,尽管我从未创建脚本组件作为数据源。总是有第一次 - 我会试一试。谢谢。
    猜你喜欢
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2016-01-18
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多