Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis SSI将脏行/失败行移动到文件或表_Ssis - Fatal编程技术网

Ssis SSI将脏行/失败行移动到文件或表

Ssis SSI将脏行/失败行移动到文件或表,ssis,Ssis,我有一个SSIS包,它将数据从一台服务器上的SQL SERVER 2008表(表a)获取到另一台服务器上的SQL SERVER 2008表(表B),然后将数据转换并移动到另一个表 我正在使用数据流任务来完成上述任务。 两个表中第1列和第2列的数据类型分别为varchar(60)和varchar(50) 我需要将数据从表B(暂存表)导入最终表(表C)。上述两列的数据类型为表C中的int类型。我在导入数据时将上述两列转换为int数据类型,我有一个数据流任务,其中OLEDB源 具有以下查询: 选择强制

我有一个SSIS包,它将数据从一台服务器上的SQL SERVER 2008表(表a)获取到另一台服务器上的SQL SERVER 2008表(表B),然后将数据转换并移动到另一个表

我正在使用数据流任务来完成上述任务。 两个表中第1列和第2列的数据类型分别为varchar(60)和varchar(50)

我需要将数据从表B(暂存表)导入最终表(表C)。上述两列的数据类型为表C中的int类型。我在导入数据时将上述两列转换为int数据类型,我有一个数据流任务,其中OLEDB源 具有以下查询:

选择强制转换(列1为INT),列2为INT) 来自表B

我有两个SQL表,即OLEDB数据源,一个通过绿色箭头具有正确的行(已成功转换为int),另一个通过红色箭头具有错误的行(抛出错误)(它被配置为仅在转换错误时重定向行,在发生截断错误时具有“failed component”选项)oledb目标表与源表具有相同的结构

当我运行将数据从源表导入目标表的数据流任务时,我得到一个错误 “转换规范的字符值无效”或数据转换错误。 我不希望它抛出错误,而是将错误行重定向到与目标表具有相同结构的错误表,该表具有相同结构,并且源表具有错误号和列名


使用数据转换任务并重定向错误行是否是一个好主意,方法是在转换时配置错误输出以及截断或仅在转换时配置错误输出,或者仅在发生转换错误时强制转换值并重定向行?

由于强制转换错误发生在SQL引擎中,因此无法使用SSI重定向这些行。我将使用数据转换任务并重定向错误行


FWIW我不是一个“错误表”的粉丝——根据我的经验,没有人会看它们。我更喜欢“积极加载”风格(即使名称很酷),即强制所有行,并让分析师解释差异。他们很快就着手解决严重的问题,因为他们扭曲了结果。总是会有一些小错误,最好不要挂断,因为生命如此短暂,所有…

嗨,迈克,我们正在将文件数据加载到表中,我们可以提供分析师进行更正,更正大文件有点复杂。我创建了一个有100000行的文件,其中文件中出现错误行的可能性较小,比如说50-100行。如果您想将这些脏行复制到表或文件中,并向用户提供tht文件以进行更正和数据移动,理论上听起来不错。在实践中,错误文件逐渐被忽略(在最初的热情之后),您的数据完整性稳步下降。当决策者意识到这一点时,他们对你的整个应用程序失去信心,你的整个项目变得毫无意义。