错误消息:
原因:失败 - 行在查找期间未产生匹配。 SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “LKP Staging and Location”失败,因为发生错误代码0xC020901E,并且“LKP Staging and Location.Outputs [Lookup Match Output]”上的错误行处理指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件“LKP Staging and Location”(2)上的ProcessInput方法在处理输入“Lookup Input”(16)时失败,错误代码为0xC0209029。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
我正在从Excel读取数据并将其存储到Statging表中。通过使用查找将相同的数据存储到名为Location.Now的另一个表中,我匹配两个数据并尝试从Location表中获取标识值。
所以数据是一样的,但我不确定它为什么会失败。如果没有匹配,我就失败了。由于相同的数据存储在两个表中,它应该匹配吗?
软件包在开发DB中成功运行,但是在SIT DB中没有运行相同的软件包。
在Dev中,我正在使用SQL身份验证和SIT Windows身份验证。
有什么建议吗?
答案 0 :(得分:3)
经过几次分析后,我自己找到了答案。 这里有两点需要注意, 即使两个表中的值相同,如果数据类型不同(第一个表中的char和第二个表中的varchar),也会抛出错误,表示不匹配。
在查找属性中,将validate metadata设置为false。因为它也在验证元数据。如果您确定两个表结构都是同步的,则应该这样做。
以上2项检查已解决了我的问题。
答案 1 :(得分:1)
在我的情况下,这仅仅是因为我连接了查找组件的“无匹配输出”,并且在“常规”部分中未设置为“将行重定向到无匹配输出”。