我对 SSIS 相当陌生,并且在将 CSV 逐行拆分为多个文件时遇到了一些问题。
我有一个包含多行的 CSV - 我试图将每一行拆分为一个新的平面文件,并使每一列成为平面文件中的新行。
我目前有一个平面文件源泵入派生列并将数据排序为我想要的格式。为了测试这一点,我将它输出到 1 个包含多行的大型平面文件中,但是我理想情况下希望为每一行创建一个文件。
我曾尝试使用 for each 循环,但我不太确定如何在 SSIS 中使用它。
任何帮助将不胜感激 - 在此先感谢。
我认为你不需要循环,一个 C# 脚本就可以了。块定义为:
Source -> [RowCounter into variable Counter
] -> [Script Task] -> Destination
脚本任务:
int val = Convert.ToInt32(Dts.Variables["Counter"].Value);
Dts.Connections["destinationConnectionName"].ConnectionString = "c:\\yourpath\\" + val.ToString() + ".txt";
当然你必须指定只读参数:计数器。
这将为每一行设置连接名称。将它与您已经拥有的排序结合起来。
您可以使用数据流中的多播转换将每个从平面文件源派生的记录发送到两个或多个平面文件目标。这可能是使用 SSIS 比使用循环容器或脚本任务更有效的方法。