使用ResultSet进行SSIS ExecuteSQL任务错误

时间:2015-12-07 16:04:00

标签: ssis sql-server-2012

您好我正在尝试从"执行SQL任务"返回一个ResultSet。在SSIS。 然后我尝试将结果保存在" ResultSet"变量。 我的查询在控制台中工作,我的连接正常。

这是我的查询 SELECT Src FROM [myDB]。[dbo]。[myTable] group by Src

Src是nvarchar(255)

当我执行任务时,我收到以下错误 [执行SQL任务]错误:执行查询" SELECT Src   来自[myDB]。[dbo]。[myTable ..."失败并出现以下错误:"分配给变量" User :: ResultSet"的值的类型(DBNull);与当前变量类型(String)不同。变量在执行期间可能不会更改类型。变量类型是严格的,但Object类型的变量除外。 &#34 ;.可能的失败原因:查询问题," ResultSet"属性设置不正确,参数设置不正确或连接未正确建立。 我还附加了任务设置的屏幕截图。

请帮忙。 ExecuteSQL Screen1

ExecuteSQL Screen2 - ResultSet setup

1 个答案:

答案 0 :(得分:0)

在使用ADO枚举器的ForEach循环中的

In SSIS 2012,当源值来自返回空值的SQL查询时,您无法为String类型的变量分配空值。

我建议使用SSIS的派生列转换功能 您将使用SSIS ISNULL函数来检测NULL值 - 然后对其执行某些操作。

More info about Derived Column Transform

例如转换String列:

ISNULL([String-Column])? "没有价值" :[String-Column]