我在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:
