数据流中有 3 个组件:一个OLE DB Source
、Data Conversion
转换和一个Flat File Destination
。如果我在数据转换转换中选择了该Ignore failure
选项,并且在该数据转换级别中忽略了某些行,那么那些被忽略的行会移向目标吗?或者我在哪里可以得到那些被忽略的行?那些将在日志文件中可用吗?
当我选择Fail component
作为选项时,错误行会发生什么?
数据流中有 3 个组件:一个OLE DB Source
、Data Conversion
转换和一个Flat File Destination
。如果我在数据转换转换中选择了该Ignore failure
选项,并且在该数据转换级别中忽略了某些行,那么那些被忽略的行会移向目标吗?或者我在哪里可以得到那些被忽略的行?那些将在日志文件中可用吗?
当我选择Fail component
作为选项时,错误行会发生什么?
选择时的标准行为Ignore failure
似乎是忽略违规值,而不是包含它们的行。我刚刚做了一个快速测试(SQL Server 2008 R2)并且导入了值NULL
而不是有问题的值。
您可以在此处找到一个非常有用的页面,其中包含有关 SSIS 数据流任务中的错误处理的更多信息。该页面的相关错误处理选项及其含义的概述:
失败组件:
发生错误或截断时,数据流任务失败。失败是错误和截断的默认选项。
忽略失败:忽略
错误或截断,并将数据行定向到转换或源的输出。
重定向行:
错误或截断数据行被定向到源、转换或目标的错误输出。
根据 SQL 2014,如果将 Truncate Row Disposition 设置为“RD_IgnoreFailure”,则列数据将被截断为指定长度并插入到目标中。例如,如果列大小为 50,数据长度为 70,则前 50 个字符将插入到目标位置。
为什么要标记 sql server 2000 和 2008?它在每个版本上都不同,即使从 2005 年到 2008 年它也会发生变化。例如,在 2008 年,您可以将失败的行拖到另一个 oledbdestination 并将它们插入到失败的日志表中。