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