我正在创建一个SSIS包,它基本上有一个SQL任务,它使用一个将返回单个字符串列的存储过程。
问题是我尝试的所有查询都返回此错误:
错误:分配给变量" User :: varTEST"的值的类型(DBNull);与当前变量类型(Int32)不同。变量在执行期间可能不会更改类型。变量类型是严格的,但Object类型的变量除外。
似乎我的查询不返回值,当我确实使用sql management studio来执行存储过程时它返回值。我使用完整结果集,结果名称使用0来映射我的变量。我尝试过简单的查询,似乎一切都在返回DBNull。
我也测试了连接,并且它已成功。
有什么想法吗?
答案 0 :(得分:3)
可以返回多行的查询不能用于填充Int32类型的SSIS变量,也不能填充Object以外的任何类型。
如果您的ExecuteSQL任务使用“完整结果集”选项,则必须将结果映射到对象类型变量。