将SQL Server varchar max存储在SSIS字符串中

Ste*_*eam 2 sql-server ssis

我在做什么 -

execute sql task通过oledb connection(OLE)从(EST)获取单行结果集。

我想设置ssis变量strName =行的第一列值(最大varchar)。strName是肯定的Ssis字符串。我检查了。

在EST中-结果名称= 0,变量名称= User::strName

我得到了错误-

[执行SQL任务]错误:向变量“ strName”分配值时发生错误:“分配给变量” User :: strName“的值的类型与当前变量类型不同。执行期间变量可能不会更改类型。变量类型是严格的,除了Object类型的变量。

我该如何解决 ?

Ste*_*eam 5

问题是SSIS无法将varchar(max)理解为数据类型。您需要指定limit。将varchar(max)列投射到varchar(8000)即可解决此问题。或者,您可以将VARCHAR max存储到SSIS对象中,然后使用object.ToString();获取值。