SSIS:将不存在的列添加到 CSV 源
Posted
技术标签:
【中文标题】SSIS:将不存在的列添加到 CSV 源【英文标题】:SSIS: add non-existent column to a CSV source 【发布时间】: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
欢迎任何提示。
【问题讨论】:
【参考方案1】:不,SSIS 中没有内置“智能”CSV 数据源。
您当然需要使用脚本组件,但您可以简单地创建一个具有脚本组件作为数据源的数据流,而不是在数据流之外使用脚本任务将控制流引导到正确的数据流.脚本组件读取当前正在导入的 CSV,如果相关列丢失,它会为其提供 NULL 或默认值。
【讨论】:
似乎合法,尽管我从未创建脚本组件作为数据源。总是有第一次 - 我会试一试。谢谢。以上是关于SSIS:将不存在的列添加到 CSV 源的主要内容,如果未能解决你的问题,请参考以下文章