问题 loading-data-from-multiple-db-to-another-server-using-ssis

Issue loading-data-from-multiple-db-to-another-server-using-ssis

我在 loading-data-from-multiple-db-to-another-server-using-ssis 中遇到问题 我参考了以下 link

SSIS 包流:

不幸的是,我在 "Execute SQL Task" 中收到如下错误:

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

如果您能帮我解决问题,我将不胜感激。 谢谢

根据评论,解决您的问题

1. 评估您的 SQL 声明。例如 :

2. 一旦你的变量查询正在评估,移动到 Execute SQL Task。它应该是这样的:

3. 接下来结果集应该是这样的(object_variable是object类型)

为什么我们没有在参数映射中使用任何东西?

答案:如果我们有一个像 Select col1, col2 from table1 where col3 = ? 这样的 SQL 查询,那么我们将用参数或变量替换 ?

在你的情况下,删除参数映射中的所有内容。

Updated :此外,由于您的查询是 Select * into tbl2 from tbl1,ResultSet 属性 应该是 None 而不是任何其他东西。

您有 2 个执行 SQL 任务

1,首先执行 SQL 任务,获取 tables 和模式的列表,它需要一个完整的结果集并将其映射到一个对象类型变量。

2、foreach循环容器,ADO Enumerator,ADO源是对象类型变量。变量映射到 2 个字符串类型变量,1 个用于 table 名称,1 个用于模式名称。

  1. 第二次执行SQL任务,它没有完整的结果集,没有参数映射。因为 table name/schema 名称更改由 Foreach 循环容器处理。