首页 文章

SSIS将空行重定向为平面文件源读取错误

提问于
浏览
1

我很难找到一种内置的方法来将空行重定向为SSIS中的平面文件源读取错误(无需借助自定义脚本任务) .

例如,您可以在其中间有一个空行的源文件:

DATE,CURRENCY_NAME
2017-13-04,"US Dollar"
2017-11-04,"Pound Sterling"

2017-11-04,"Aus Dollar"

并且您的列类型定义为:

  • DATE:数据库时间[DT_DBTIME]

  • CURRENCY_NAME:字符串[DT_STR]

尽管如此,程序包仍然会运行并将空行一直带到目标所在的位置,自然会失败 . 我能够及早发现并识别出源读取失败 . 是否可能没有脚本任务?也许是一个简单的派生列,但我更愿意,如果可以在Connection Manager / Flat File Source级别配置它 .

2 回答

  • 0

    不依赖脚本任务的唯一方法是使用一个 varchar(max) 列定义源平面文件,选择一个从未使用过的分隔符,并将所有内容写入SQL Server登台表 . 然后,您可以清除这些空行,并使用SQL将其余部分解析为关系输出 .

    这种方法不是很干净,并且比使用脚本任务转储空行或不匹配模式的方法需要更多的努力 . It isn't that hard to create a transformation with the script component

    话虽这么说,我的建议是记录一个清晰的界面描述,并使用您的界面将其分发给所有客户 . 处理读取平面文件时抛出错误的所有文件,并将带有该文件的邮件发送给负责的客户端,并提供不符合接口规则且需要修复的信息 .

    想象一下平面文件是手动生成的,甚至更糟糕的是使用像excel这样的东西,你会遇到错误的文件编码,缺少列,非ascii字符,错误的日期格式等等 . 你将处理由质量问题引起的所有异常 .

  • 0

    只需添加条件拆分组件,然后使用以下表达式拆分行

    [DATE] == ""
    

    并将默认输出连接器连接到目标

    References

相关问题