SSIS 如何处理column的nullability
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSIS 如何处理column的nullability相关的知识,希望对你有一定的参考价值。
今天遇到一个Error,details是在向OLE DB Destination的中Columns[FullName]插入数据时,违反了完整性约束。
[OLE DB Destination [12]] Error: There was an error with OLE DB Destination.Inputs[OLE DB Destination Input].Columns[FullName] on OLE DB Destination.Inputs[OLE DB Destination Input]. The column status returned was: "The value violated the integrity constraints for the column.".
Integrity Constraint包括:域完整性约束,实体完整性和参考完整性,Columns[FullName] 不具有实体完整性约束(PK) 和参考完整性约束(FK)。唯一可能违反的就是域完整性约束。域完整性约束包括:CHECK Constraint,DEFAULT Constraint、NOT NULL Constraint(非空约束),Unique Constraint,排除 check,default,unique,唯一能够违反的Integrity Constraint 就是 Not null constraint,就是Table column 的nullability 。
SSIS没有任何属性用于处理SQL Table column的nullability,如 Illustration1 和Illustration2,错误的root cause 是OLE DB Source Component 返回的Column FullName 存在Null值,但是OLE DB Destination Table 的 Column(FullName)定义的是Not Null,不允许为null。
SSIS 不处理column nullability,table 的 nullability是由SQL Server database engine来处理的。SSIS在调用 bulk insert 命令插入数据时,SQL Server 检测到数据插入操作违反了表的nullability,停止事务的运行,并向SSIS 报错。
由于SSIS不处理column nullability,所以,只需要修改table column的 nullability,不需要修改SSIS package,就能Fix this error.
Illustration1,DataSource(OLEDB Source) Component的External Columns 和 Output Columns 的属性
Illustration2,DataDestination(OLEDB Destination) Component的External Columns 和 input Columns 的属性
以上是关于SSIS 如何处理column的nullability的主要内容,如果未能解决你的问题,请参考以下文章
Unknown column 'a' in 'where clause',出现这个问题,如何处理?