【问题标题】:SSIS - Records not being picked upSSIS - 没有被拾取的记录
【发布时间】:2018-11-03 05:27:29
【问题描述】:


我正在使用我继承的 SSIS。有一个数据流可以找到所有状态为 0 的记录,并将它们插入一个单独的表中。数据流使用静态查询来获取新记录。
当我的 SSIS 运行时,我遇到了一个问题,它没有将记录插入到目标表中。但是,它确实会在原始表中提取许多其他记录。
更奇怪的是,如果我从工作中运行这个过程,总会有一些记录(总是相同的)没有被拾取。但是,如果我手动运行该作业,它们确实会被拾取。
我检查过,我们提取的所有记录在任何候选键中都没有空值。不调用错误处理,因此不会发生错误。我可以将记录插入到目标表中,所以这不是 PK 问题。
从外观上看,这些记录不是由作业运行的 SSIS 看到的,而是在我手动运行时看到的。有人见过这个问题吗?

【问题讨论】:

  • 从作业运行时是否有某种配置被调用?

标签: sql-server ssis


【解决方案1】:

您应该检查数据流中的源任务是否正在使用带有表达式的连接。表达式的值会更改您的源,当您在调试模式下运行包与在作业中运行包时,它可能会有所不同。您可以将表达式配置为使用作业可以使用的参数。

您可以轻松检查连接是否使用表达式,因为它在连接名称前有一个 FX,如下图所示。

Connection DBSource in the Connection Managers

【讨论】:

  • 所以,我检查了表达式,我们可以看到它指向同一个数据库。此外,我们可以看到 95% 的记录在从作业运行时被拾取并放入目标表中。最后 5% 需要我通过直接运行 SSIS 来发送。
  • 你检查过表达式是否使用了参数吗?
【解决方案2】:

因此,我们终于通过在 prod 上进行测试找到了问题的解决方案(孩子们,不要在家里尝试这个)。看起来解决方案只是删除SSIS并回复它。 有没有其他人看到这个 SSIS 运行很有趣并且需要重新部署的问题?

【讨论】:

  • 根据您的问题和回答......它可以是任何东西,但很可能部署的版本与您在 Visual Studio 中运行的版本不匹配
  • 我确实重新部署为测试,但仍然收到错误。连接是一个表达式,但我可以看到它改变的数据我知道它指向了正确的位置。并且没有配置文件影响连接。
猜你喜欢
  • 2015-07-10
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
  • 2012-12-31
  • 2021-12-31
  • 1970-01-01
  • 2017-03-17
  • 2021-12-31
相关资源
最近更新 更多