SSIS - 错误和截断之间有什么区别?

时间:2015-03-06 14:23:27

标签: ssis

配置SSIS组件的错误页面时“错误”和“截断”有什么区别?特别是,什么类型的不同错误可以在“错误”下与截断不同?

error and truncation

3 个答案:

答案 0 :(得分:2)

错误属于以下两类之一:错误或截断。

  • 错误表示明确失败,并生成NULL结果。此类错误可能包括数据转换错误或表达式评估错误。

例如:

尝试将包含字母字符的字符串转换为数字会导致错误。由于非法转换和不兼容的数据类型,数据转换,表达式求值以及表达式对变量,属性和数据列的分配可能会失败。

  • 截断不如错误严重。截断生成可能可用或甚至可取的结果。您可以选择将截断视为错误或可接受的条件。

例如:

如果要将15个字符的字符串插入到只有一个字符宽的列中,则可以选择截断该字符串。

答案 1 :(得分:1)

截断是"如果我尝试将250个字符的字符串插入varchar(50)字段,该怎么办?"或者"如果元数据说DT_STR的长度为10,我该怎么办,但是数据源给了我一个长度为20的东西?"有些导入是正常的,数据被截断,因此想要以静默方式忽略截断是很常见的。

错误是,"如果我尝试将字符串'ABCXYZ'插入整数字段,该怎么办?"或者,"如果我尝试将字符串'2015-02-31'插入日期字段,我该怎么办?"或"如果我尝试插入{{1}怎么办?进入NULL字段。"大多数情况下,它是数据类型的错误,但可能包括约束错误(唯一性,外键等)。它也将成为截断不涵盖的任何事物。我见过的大多数错误都来自目的地而非来源。字段级别的源错误可能发生在不同的编码中,尤其是unicode与非unicode。当源失败时,它通常不是单个字段的失败,而是整个表,视图或查询的失败,但是,由于SQL的工作方式,但可能是您的源是平面文件。我们让供应商决定更改其文件中字段的顺序,而SSIS对此没有反应。

答案 2 :(得分:0)

“错误”表示“我不能这样做”

“截断”意味着“我可以做到这一点,但我将不得不在某个时刻缩短字符串。”