2015-02-10 73 views
0

我有一个SSIS任务,至少在过去的2年中运行良好。 IT将任务移至新服务器,现在正在抛出“变量名”User :: obEmailBody“无法在变量列表中找到”错误。无法在变量列表中找到SSIS变量

我将任务复制回我的桌面,运行良好。它只在服务器上失败。我已验证该变量是否存在并正在填充到我的测试环境(本地桌面)中。我不知道为什么它在服务器上失败。该变量是一个system.object。

服务器上是否存在阻止创建system.object变量的设置?

+0

不,没有会影响创建变量的服务器设置。编辑你的问题,以显示一些表达式,如果它们存在,变量,电子邮件任务的配置等 – billinkc 2015-02-10 17:17:24

+0

在服务器中,变量是否存在?要检查服务的SSIS中是否存在该变量,请转到SSIS - > Variable,它将显示一个变量列表... – 2015-02-10 17:26:41

+0

该变量用于保存记录集目标。我将它填充到数据流任务中,然后使用Foreach ADO Enumerator在不同的数据流任务中读取它。 – FlyFish 2015-02-10 17:32:48

回答

0

我最终删除了Recordset Destination任务并重新创建。

1

我最近经历过这种类型的问题,它有一个相当简单直接的包,它从Excel电子表格中读取数据,清理将数据传递到SQL存储过程的数据,这些数据需要在夜间运行。该软件包作为SQL集群环境中的SQL作业执行。在生产之后,我们发现其中一个节点没有问题,而另一个节点给了我们错误“在变量列表中找不到变量名'User :: oInternalUser'”。这些节点唯一的区别在于SSIS组件是在服务器启动后安装的。经过几个小时的问题排查后,我们决定向微软开放一张票。经过近两个资源的故障排除近4个小时后,我们得到以下建议。

  • 将SQL 2012升级到Service Pack 3.这应该修复SSIS组件内的任何损坏。
  • 安装64位版本的Ace驱动器并以64位模式执行包。
  • 执行时间旅行跟踪。尽管听起来很有希望,但在这个过程中会发生的性能问题受到了警告,但性能受到影响的程度并不清楚,也不适合在生产环境中执行。

我们的解决方案是使用所有SSIS组件重建服务器,并安装64位版ACE驱动程序以64位模式运行程序包。这已经解决了我们的问题。我们制作了服务器的副本,这两台重建服务器现在包含我们的集群。