我的SSIS包失败,错误如下:
分配给变量的值的类型与当前变量类型不同。
我在SQL表中声明了一个string类型的变量和相应的列名为varchar(33)。如果我使用数据类型作为对象,它就成功了,但是我同样需要在连接字符串的表达式中使用变量值,并且不支持对象类型。
请帮我继续。
注意:我的SSIS包的目标是从一个表中获取服务器列表(这是它失败的地方),并在所有服务器中使用一个foreach循环容器执行一些脚本。
发布于 2015-08-14 05:04:18
如果我正确地理解了您的问题,您实际上需要的是两个变量:一个是从SQL表接收数据的对象变量,另一个是传递给ForEach循环的字符串值。
它们之间的区别是,对象变量可以容纳多行,而字符串值一次只能容纳一个项。您要做的是声明一个对象变量,用服务器列表填充它,然后使用ForEach循环逐步遍历列表中的每个项,每次将值输入到字符串变量中。然后,您将使用String变量来设置您提到的脚本,并在每个服务器上执行它一次。
为了进一步阅读,有一个很好的演练这里,它将为您提供截图和我正在谈论的内容的示例。
发布于 2016-08-23 20:27:44
我知道我很晚才回复这条帖子,下面的解释是对将来看到这一条的人的解释。我最近遇到了这种情况。我做了以下工作
首先,我的记录集对象类型的目标变量。使用每个循环容器,我将每个行数据(包含多个列)映射到一个对象类型的变量。当我为变量使用对象数据类型以外的任何其他数据类型时,我得到的错误如下
Error: ForEach Variable Mapping number 3 to variable "User::EMPID" cannot be applied.
然后,我在执行SQL任务中使用了对象类型的变量,它成功地插入数据,没有任何错误。
拇指规则:将记录集目标输出映射到对象类型的变量。
发布于 2016-08-23 04:54:01
我最近遇到了这种情况。我做了以下工作
首先,我的记录集对象类型的目标变量。使用每个循环容器,我将每个行数据(包含多个列)映射到一个对象类型的变量。当我为变量使用对象数据类型以外的任何其他数据类型时,我得到的错误如下
Error: ForEach Variable Mapping number 3 to variable "User::EMPID" cannot be applied.
然后,我在执行SQL任务中使用了对象类型的变量,它成功地插入数据,没有任何错误。
拇指规则:将记录集目标输出映射到对象类型的变量.
https://stackoverflow.com/questions/32009620
复制