我在SSIS中有一个平面文件源连接.我已经为错误输出创建了一个平面文件目标连接.我用红色箭头连接了它.问题是即使平面文件源中没有错误,也会创建错误输出文件.即使没有错误,"错误平面文件目标"也始终变为绿色.如何解决它.提前致谢
小智 13
可能你已经找到了解决方案.我希望这可能有助于寻找解决此问题的人.
SSIS中没有可用的内置数据流任务设置来执行此操作.您可以Row Count
在数据流任务内部使用转换结合File System Task
控制流来实现此目的.
以下是如何执行此操作的分步过程.在这个例子中,我使用了一个名为Country_State.csv
包含国家和州的csv文件作为源文件.
场景:
示例包将读取该文件,然后写入名为的文本文件Destination.txt
.在这种情况下,Error.txt
将创建错误文件,但如果没有错误,则稍后将删除.在这里,我将文件存储在路径中c:\temp\
分步流程:
Source
连接应指向csv文件路径c:\temp\Country_State.csv
.请参阅屏幕截图#2以获取此文件的内容.Destination
连接应指向名为的文本文件c:\temp\Destination.txt
.Error
连接应指向名为的文本文件c:\temp\Error.txt
.ErrorCount
.Data Flow Task
然后放置一个File System Task
.Expression
和值粘贴@ErrorCount == 0
在表达文本框.Source
连接管理器.Destination
连接管理器.Row Count
在数据流选项卡上放置转换并将其配置为使用变量User:ErrorCount
.Error
连接管理器.Error
.Delete file
并设置SourceConnection来Error
.参见截图#5.C:\temp
包执行之前的文件夹路径的内容显示在屏幕截图#6中.C:\temp
包执行后文件夹路径的内容显示在屏幕截图#9中.Source
连接管理器上的第二列更改为整数(即使状态名称是字符串),以便数据流任务重定向到Error
输出.C:\temp
方案2包执行后的文件夹路径的内容显示在屏幕截图#12中.请注意,即使没有成功的行,也存在Destination.txt文件.这是因为该示例仅删除Error文件(如果为空).类似的逻辑可用于删除空的目标文件.
希望有所帮助.
截图#1:
截图#2:
截图#3:
截图#4:
截图#5:
截图#6:
截图#7:
截图#8:
截图#9:
截图#10:
截图#11:
截图#12:
归档时间: |
|
查看次数: |
14117 次 |
最近记录: |