我在做什么 -
从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类型的变量。
我该如何解决这个问题?
答案 0 :(得分:4)
问题是SSIS不理解varchar(max)作为数据类型。您需要指定限制。将varchar(max)列CAST到varchar(8000)以解决问题。或者,您可以将VARCHAR max存储到SSIS对象中,然后使用object.ToString();
获取值答案 1 :(得分:1)
使用ADO.NET连接。 OLEDB无法应对varchar(max)。