我的要求是从三个不同的数据集中生成一个平面文件,文件名中应该有时间戳值。所有三个数据集都来自 SQL 服务器,并使用 SQL 查询从源中获取这些数据。源类型为 OLEDB 源。
DataSet 1:这是一个标题数据集,只有一行具有不同的列。前两列是硬编码的,时间戳是动态计算的。
+--------+----------+----------------------+--------------------+
| FileID | FileType | SourceBeginTimestamp | SourceEndTimestamp |
+--------+---------------------------------+--------------------+
| 1 | TXT | Time SSIS starts | Time SSIS Ends |
DataSet 2:包含多列数据的数据集。总行数通常为 1000 到 10000。
+---------+---------+---------+---------+---------+
| Column1 | Column2 | Column3 | Column4 | Column5 |
+---------+---------+---------+---------+---------+
| | | | | |
DataSet 3:页脚数据集包含包括Dataset1、Dataset2和dataset3在内的总行数。下面的示例 - 考虑 Dataset2 有1198行。
+-----------+----------+
| TotalRows | FileType |
+-----------+----------+
| 1200 | txt |
到目前为止我所做的:我为每个数据集使用了三个不同的 Dataflow 任务和平面文件连接管理器。使用表达式动态创建带有时间戳的平面文件名,其中不包含秒数。这样,当我运行包时,它只会创建一个文件并将所有三个数据集转储到一个文件中。
问题是,当包在一分钟更改中间运行时,将有两个文件。
预期结果:我想将这三个平面文件合并为一个文件名如 SampleText_YYYYMMDDHHMISS.txt 的平面文件。我正在尝试一种方法来使用文件系统任务或让 DFT 将数据转储到行集中,然后使用脚本任务将所有数据转储到一个平面文件中。
输出文件将没有标题名称 (ColumnNames)
请建议最好的方法。