10

我有一个执行 SQL 任务,它只返回一行一列 - 一个数字。我将结果集设置为单行。尽管如此,任务还是失败了。为什么 ?我如何解决它 ?

[Execute SQL Task] Error: There is an invalid number of result bindings returned for the 
ResultSetType: "ResultSetType_Rowset".
4

3 回答 3

9

可能您没有正确配置结果集参数。要对其进行配置,请单击 Execute SQL Task 中的 ResultSet,然后单击 Add。在“ResultSetName”列中,输入您要检索的列名的确切名称,或者简单地给它 0。在“变量名”中,选择您创建的变量以映射返回的数据。

于 2013-09-30T06:29:17.427 回答
0

在我的情况下,当没有返回结果时,ResultSet 配置为“完整结果集”。我调用的存储过程只是删除数据。所以我把它放在“无”上,它起作用了..

于 2015-02-20T12:47:28.427 回答
0

老问题(但谷歌仍然找到它:-))

如果您想使用行集作为结果(通常将其与 ForEach-Loop 结合使用)

  • 您必须创建一个“对象”类型的变量(例如 MyResultSet)
  • 在 Execute SQL 任务中 ResultSet 属性必须是 Full Rowset (已经是,当您收到上面的错误消息时)
  • 在结果集窗格(左侧列表条目)上,您必须添加一个条目,将其名称设置为 0,并将其变量设置为对象类型变量 (MyResultSet)
  • 在 ForEachLoop-Container 中,您必须切换到排序规则窗格(左侧列表条目)
  • 将 Enumerator 属性设置为 Foreach-ADO-Enumerator
  • (现在可见)ADO-ObjectSourceVariable 必须设置为您的对象变量 (User:MyResultSet)
  • 单击左侧窗格中的变量分配条目
  • 为结果集中的每一列创建一个条目(并希望您没有为 100 列的表使用 select * :-))
于 2021-12-16T19:53:03.527 回答