SSIS 中的错误 - [执行 SQL 任务] 错误:为 ResultSetType 返回的结果绑定数量无效:“ResultSetType_Rowset”

问题描述 投票:0回答:4

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

[Execute SQL Task] Error: There is an invalid number of result bindings returned for the 
ResultSetType: "ResultSetType_Rowset".
sql-server ssis sql-server-data-tools
4个回答
10
投票

可能您没有正确配置结果集参数。要配置它,请单击执行 SQL 任务中的 ResultSet,然后单击添加。在“ResultSetName”列中,输入您要检索的列名的确切名称,或者直接给它 0。在“variablename”中,选择您创建的变量来映射返回的数据。


1
投票

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

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

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

0
投票

在我的例子中,当没有返回结果时,结果集配置为“完整结果集”。我调用的存储过程只是删除数据。所以我把它设置为“无”并且它起作用了..


0
投票

我想返回 4 行计数。所以我选择“完整结果集”作为我的结果集。我将我的 ms sql 作为名称映射到我的 ssis 变量,运行它并收到上述错误消息。当我将 ResultSet 更改为“单行”时,它运行得很好。感谢下面的 Sam 提出的想法。

© www.soinside.com 2019 - 2024. All rights reserved.