美好的一天,
我有一个select查询,我从sql中提取数据,即
select invno , date_received from sales
我想要做的是使用条件拆分将文件拆分为多个文件。 我不知道如何设置我尝试的条件,如下所示
但它只创建了一个文件,如果我不知道列值是什么,如何根据列值创建多个文件?
另外我想将列值(即INVNO)分配给文件名以防止覆盖文件
答案 0 :(得分:2)
使用开箱即用的组件,你最好的选择是拥有这样的东西
执行SQL任务将完整结果集返回到Object类型的SSIS变量。您的查询将生成不同的INVNO集。 SELECT DISTINCT T.INVNO FROM dbo.Sales AS T;
Foreach循环容器然后将该记录集“粉碎”成我们的INVNO的单个实例。这要求您有一个变量(可能是String类型)来接收该数字。
数据流任务将具有参数化查询作为源查询。假设OLE DB连接管理器,它是select INVNO, date_received FROM dbo.Sales AS S WHERE S.INVNO = ?;
然后你映射当前的INVNO值(作为从FELC粉碎的一部分)
最后,平面文件连接管理器将在ConnectionString属性上具有一个表达式,该表达式会影响输出文件的完整路径。它可能像"C:\ssisdata\" + @[User::Invno] + ".csv"
哦,并为Flat File Connection Manager和数据流任务设置DelayValidation = True。