我的 SSIS 包失败并出现以下错误:
分配给变量的值的类型与当前变量类型不同。
我声明了一个字符串类型的变量,SQL 表中对应的列名是 varchar(33)。如果我使用数据类型作为对象,它会成功,但我需要在连接字符串的表达式中使用变量值,并且不支持对象类型。
请帮助我如何进行。
注意:我的 SSIS 包的目标是从表中获取服务器列表(这就是它失败的地方),并在所有服务器中使用 foreach 循环容器执行一些脚本。
我的 SSIS 包失败并出现以下错误:
分配给变量的值的类型与当前变量类型不同。
我声明了一个字符串类型的变量,SQL 表中对应的列名是 varchar(33)。如果我使用数据类型作为对象,它会成功,但我需要在连接字符串的表达式中使用变量值,并且不支持对象类型。
请帮助我如何进行。
注意:我的 SSIS 包的目标是从表中获取服务器列表(这就是它失败的地方),并在所有服务器中使用 foreach 循环容器执行一些脚本。
如果我没看错你的问题,你真正需要的是两个变量:一个是从 SQL 表接收数据的 Object 变量,另一个是你将传递给 ForEach 循环的字符串值。
它们之间的区别在于您的 Object 变量可以容纳多行,而您的 String 值一次只能容纳一个项目。您将要做的是声明一个 Object 变量,用服务器列表填充它,然后使用 ForEach 循环遍历列表中的每个项目,一次将一个值提供给您的 String 变量。然后,您将使用 String 变量来设置您提到的脚本,并在每个服务器上执行一次。
为了进一步阅读,这里有一个很好的演练,它将为您提供我正在谈论的屏幕截图和示例。
我知道我很晚才回复这个帖子,下面的解释是为将来看到这个的人准备的。我最近遇到了这种情况。我做了以下
首先是我的对象类型的记录集目标变量。使用 For Each Loop 容器,我将每一行数据(具有多列)映射到 OBJECT 类型的变量。当我对变量使用除 OBJECT 数据类型以外的任何其他数据类型时,我得到如下错误
Error: ForEach Variable Mapping number 3 to variable "User::EMPID" cannot be applied.
然后我在执行 SQL 任务中使用了对象类型的变量,它成功插入数据而没有任何错误。
拇指规则:将记录集目标输出映射到 OBJECT 类型的变量。
我最近遇到了这种情况。我做了以下
首先是我的对象类型的记录集目标变量。使用 For Each Loop 容器,我将每一行数据(具有多列)映射到 OBJECT 类型的变量。当我对变量使用除 OBJECT 数据类型以外的任何其他数据类型时,我得到如下错误
Error: ForEach Variable Mapping number 3 to variable "User::EMPID" cannot be applied.
然后我在执行 SQL 任务中使用了对象类型的变量,它成功插入数据而没有任何错误。
拇指规则:将记录集目标输出映射到 OBJECT 类型的变量。