2017-08-16 107 views
0

我是SSIS的新手,并为多个表创建IDL(增量数据加载)包。如何为脚本任务设置数据流任务的变量值

我的包有执行SQL任务,当我设置变量的值从脚本任务是工作但是当我尝试从数据流(oldedb源)脚本任务设置变量的值,它是不工作如

我的SSIS包:

  • foreach循环容器

  • 脚本通过架构表任务中循环,并设置sourceTable会=表名。

  • OLEDB源(使用sourceTable会)
  • 查找(查找不匹配出认沽)
  • Oldedb目的地

任何想法,为什么?

enter image description here

更新: enter image description here

+0

您是否已将变量指定为脚本任务的读/写? – FLICKER

+0

是的,我这样做ReadWriteVariables中的用户:: SourceTable – shaadi

回答

2

SSIS从数据源组件报告这种奇特的错误时,它是无法提取从指定的源信息的元数据(列名和数据类型)。下面是可能的情况和待办事项:

  • 数据源的包运行验证之前,在这个时候,在sourceTable会变量没有值。待办事项 - 指定DelayValidation =真的数据流任务,或为sourceTable会变量
  • SourceVariable设置一些有效默认值(指向表中已有的开始时间)包含在运行时无效的表名。如果您进行了上述更改并且错误仍然存​​在,则会发生这种情况。使用调试器检查其值并分析案例。
+0

我用调试器来检查脚本任务和脚本的值任务是传递值到数据流任务但是我仍然无法写入包变量在数据流任务也设置DelayValidation = true。看,就像我只能写包来变量值,如果我使用脚本组件。 – shaadi

+0

现在我好像明白了。您正在尝试写入脚本转换组件中的包变量,对吗?在这种情况下,您可能会发现这有帮助 - https://stackoverflow.com/a/39206880和https://stackoverflow.com/a/32229160。 – Ferdipux

+0

是的,你知道了。我正在使用脚本组件和数据流任务中的变量设置值似乎我缺少的东西,因为我不能使用oledb目标的数据访问模式中的变量例如检查我的更新有问题。 – shaadi

相关问题