【问题标题】:Wrong error in SSIS - [Execute SQL Task] Error: There is an invalid number of result bindings returned for the ResultSetType: "ResultSetType_Rowset"SSIS 中的错误错误 - [执行 SQL 任务] 错误:为 ResultSetType 返回的结果绑定数量无效:“ResultSetType_Rowset”
【发布时间】:2023-04-04 21:20:01
【问题描述】:

我有一个执行 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


    【解决方案1】:

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

    【讨论】:

    • "输入您要检索的列名的确切名称或简单地给它 0" - 它对我不起作用,直到我简单地给它 0 也必须使用结果集:单行
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-17
        • 1970-01-01
        • 2014-06-07
        • 1970-01-01
        • 2015-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多