Sql server 在SSIS字符串中存储SQL server varchar max

Sql server 在SSIS字符串中存储SQL server varchar max,sql-server,ssis,Sql Server,Ssis,我在做什么- 通过oledb连接(OLE)从执行sql任务(EST)中获取单行结果集 我想设置ssis变量strName=行的第一列值(varchar max)。strName肯定是一个ssis字符串。我查过了 在EST-result name=0中,变量名=User::strName 我得到了错误- [Execute SQL Task]错误:将值分配给时出错 变量“strName”:“分配给变量的值的类型 “User::strName”与当前变量类型不同。变量可能 在执行期间不更改类型。变量类

我在做什么-

通过oledb连接(OLE)从执行sql任务(EST)中获取单行结果集

我想设置ssis变量strName=行的第一列值(varchar max)。strName肯定是一个ssis字符串。我查过了

在EST-result name=0中,变量名=
User::strName

我得到了错误-

[Execute SQL Task]错误:将值分配给时出错 变量“strName”:“分配给变量的值的类型 “User::strName”与当前变量类型不同。变量可能 在执行期间不更改类型。变量类型是严格的,但 对于对象类型的变量


如何解决此问题?

问题是SSIS不将varchar(max)理解为数据类型。您需要指定限制。将varchar(max)列强制转换为varchar(8000)以解决此问题。或者您可以将varchar max存储到SSIS对象中,然后使用object.ToString()获取值使用ADO.NET连接。OLEDB无法处理varchar(最大值)。

@MartinSmith-这是正确的答案。