【问题标题】:SSIS Lookup fails eventhough record match is correct即使记录匹配正确,SSIS 查找也会失败
【发布时间】:2015-01-07 13:13:46
【问题描述】:

错误信息:

原因:失败 - 行在查找期间未产生匹配项。 SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “LKP 暂存和位置”失败,因为发生了错误代码 0xC020901E,并且“LKP 暂存和位置。输出 [查找匹配输出]”上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“查找输入”(16) 时,组件“LKP 暂存和位置”(2) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

我正在从 Excel 中读取数据并将其存储到统计表中。相同的数据存储到另一个名为 Location 的表中。现在通过使用查找,我匹配两个数据并尝试从 Location 表中获取标识值。

所以数据是相同的,但我不确定它为什么会失败。如果没有匹配项,我将失败。由于相同的数据存储在两个表中,它应该匹配吧?

包在开发数据库中成功运行,但相同的包没有在 SIT 数据库中运行。

在 Dev 中我使用 SQL 身份验证,而在 SIT Windows 身份验证中。

有什么建议吗?

【问题讨论】:

  • 你能把excel中的值和表格中的值都粘贴到这里吗?也许他们在某些方面并不平等
  • 嘿,excel 值存储在 DB 暂存表中,我正在从暂存表加载到 Location 表中。我没有直接将 excel 加载到位置表。
  • 哦,是的,抱歉,无论如何,您可以发布两个表中的值吗?

标签: ssis ssis-2012


【解决方案1】:

经过几次分析,我自己找到了答案。 这里需要注意两点, 即使两个表中的值相同,如果数据类型不同(第一个表中的 char 和第二个表中的 varchar),也会抛出错误,说不匹配。

在查找属性中,将验证元数据设置为 false。因为它也在验证元数据。如果您非常确定两个表结构是同步的,则应该这样做。

以上两项检查解决了我的问题。

【讨论】:

  • 我看到了这个,但是源数据完全连接到查找表数据??
【解决方案2】:

在我的情况下,这仅仅是因为我从查找组件连接了“无匹配输出”,并且没有在“常规”部分中设置为“将行重定向到无匹配输出”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2016-01-30
    • 2022-10-17
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多