[英]Bad Data in Excel source does not generate error in SSIS
我对SSIS有一个快速的问题。 我正在开发一个程序包,该程序包执行从Excel源到OLE DB连接的数据流任务。 数据库中的列应允许为空。 但是,存在一个问题,当我在excel电子表格的数字列中输入错误数据时,它不会像我希望的那样导致数据流任务失败。 我试图通过显式尝试在“派生列”步骤中转换任何数字列来解决此问题,但是会发生相同的事情-如果在程序包运行后,db中的NULL结果为NULL,则在Excel数字列中输入abc。 我确实希望允许使用NULLS,但如果数据损坏,我希望程序包失败。
任何意见,将不胜感激 :)
如果您在定义导入的位置编辑SSIS任务,则可以为每列选择错误处理。 您可以在此处选择将其设置为失败和停止,忽略并继续操作等。
此链接应帮助您根据需要进行处理:
和
http://sqlserver360.blogspot.de/2011/03/error-handling-in-ssis.html
和
我刚刚尝试过此操作,但忽略/重定向/失败设置似乎没有任何效果,无论如何,NULL都会更新到数据库中。
如果您不希望使用NULL,则建议您修改目标表的定义,以在希望为数字的列上指定NOT NULL
约束。 这样,数据库更新和程序包将失败。
但是由于您希望使用空列,所以我唯一可以建议的是,编写脚本任务或脚本组件以在接受数据之前读取并验证数据。
或者,将Excel文件读入所有列均为VARCHAR
的暂存区域,然后通过SQL进行验证
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.