sql-server - 如何创建单独的转换文件而不是覆盖 ssis 输出平面文件?
问题描述
我有一个数据流,用于使用每个循环容器对给定文件夹中的多个平面文件进行转换。我再次有一个平面文件作为输出文件。问题是每次我执行作业时,只有最后一个转换的文件将存储在目标文件中。在 SSIS 中有没有一种方法可以创建单独的转换输出文件,而不是一遍又一遍地覆盖同一个输出文件?
为了。例如。我在一个文件夹中有 5 个平面文件 test_1.txt、test_2.txt、test_3.txt、test4_.txt 和 test_5.txt。作业运行后,我只能看到最后一个文件 test_5.txt 中的数据正在我的目标文件中进行转换。
解决方案
这是我测试的一个工作示例的步骤。
变量
我定义了 3 个变量:
- FileName - 在 foreach 循环中使用
- DestinationDir - 文件在哪里
- SourceDir - 我要处理的文件在哪里
Foreach 循环设置
- “目录”的表达式设置为 @[User::SourceDir]
- 检索文件名设置为“名称和扩展名”
这意味着当 foreach 循环遍历目录中的文件时,它会将文件的“名称和扩展名”设置为变量 @[User:FileName]
数据流任务
然后在 DFT 内部,我有一个简单的平面文件源到平面文件目标。我们只需将每个文件的内容传递给新文件:
在初始开发期间,我将手动选择一个文件来逐步设置每个源和目标。然后回来更改连接管理器并在 ConnectionString 上设置一个表达式。
连接管理器表达式
- ConnectionString 得到一个表达式:@[User::SourceDir] + @[User::FileName]
- ConnectionString 得到一个表达式:@[User::DestinationDir] + @[User::FileName]
测试
推荐阅读
- ruby-on-rails - 通过字符串值查找多维数组中数组的索引
- java - 如何将表转换为 Spring Data 实体?
- c - 重复 sprintf 格式模式 - 字符串文字与 const char 字符串和编译器优化
- python-3.x - Pandas resample() 系列给出不正确的索引
- c++ - Visual Studio 中 C++ 的 XML 文档导航(如在 C# 中)
- r - 如何在officer中格式化页边距?
- php - PHP exec() 输出截短
- javascript - Jest 测试中的 Preact Compat 不兼容
- amazon-ec2 - 使用 phpredis、php7.0 和 redis5.0.5 未加载 Redis.so
- arrays - 如何修复:致命错误:索引超出范围