在SQLIS字符串中存储SQL server varchar max

时间:2014-01-08 23:55:26

标签: sql-server ssis

我在做什么 -

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

我想设置ssis变量strName = row的第1列值(varchar max)。 strName是一个ssis字符串FOR SURE。我检查了。

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

我收到了错误 -

  

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

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

问题是SSIS不理解varchar(max)作为数据类型。您需要指定限制。将varchar(max)列CAST到varchar(8000)以解决问题。或者,您可以将VARCHAR max存储到SSIS对象中,然后使用object.ToString();

获取值

答案 1 :(得分:1)

使用ADO.NET连接。 OLEDB无法应对varchar(max)。