【发布时间】:2014-04-11 15:23:20
【问题描述】:
我在 vs 2005 中创建了一个 ssis 包,它开始给我以下错误:
[Lawson 暂存表 [4046]] 错误:输入“OLE DB 目标输入”(4059) 上的输入列“JOB_CODE”(4200) 存在错误。返回的列状态为:“违反的值 列的完整性约束。”。
我的第一个问题是:我的表、列和目标后面的 4046、4200 和 4059 值是什么?
我的第二个问题是关于完整性约束消息。目标表是一个没有约束的堆(没有键或索引)。目标列定义为 varchar(10)。输入列来自 oracle,定义为 char(9),称为 job_code。那么 - 在哪里定义了完整性约束?
最后一个问题是关于select语句的;如下所示:
Select ...
,lpad(trim(e.job_code),10,'0') as job_code ...
如果我取出 lpad 和 trim 函数,它可以工作,但我需要这些函数,因为我的规范要求使用前导零填充的固定长度列。此列在 TOAD 中按预期返回数据,但在 ssis 包中失败。有人看到函数的使用方式有问题吗?
由于这个包过去工作但突然开始抛出这个错误,我假设新的无效数据已经开始发挥作用。但是,最近添加的行似乎与历史记录没有任何不同。
【问题讨论】: