SSIS:使用SQLStatement输出记录作为完整结果集,以馈入每个循环容器

时间:2018-11-29 18:48:22

标签: sql-server ssis resultset ssis-2012 execute-sql-task

我正在尝试将SQL任务的 Full Result Set 结果集的SQLStatement输出用作对象,以馈入foreach循环容器。

SQL语句是

SELECT * FROM INFORMATION_SCHEMA.TABLES
where TABLE_NAME like 'Dim%'

我想将来自源OLEDB SQL连接的查询输出作为对象传递给容器,以将表转移到其他OLEDB SQL连接。

我的参数设置如下:

  • 变量名称= User :: Tables_to_be_transferred
  • 方向=输入
  • 数据类型= VARCHAR
  • 参数名称= NewParameter
  • 参数大小= -1

结果集:  -结果名称= 0  -变量名称= User :: Tables_to_be_transferred

但是当我运行代码时,出现以下错误消息:

    Error: 0xC002F210 at Select tables, Execute SQL Task: Executing the query "SELECT * FROM INFORMATION_SCHEMA.TABLES where TABL..." failed with the following error: "Parameter name is unrecognized.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

该如何解决?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您不需要输入参数,因为您的查询没有任何参数,因此添加一个可能会引起问题。

确保User::Tables_to_be_transferred是对象类型的变量,并且仅将其用于ResultSet。请勿将其用作输入参数。

答案 1 :(得分:0)

您将不需要使用参数来返回结果集。由于您已经将ResultSet设置为“已满”,因此在“结果集”窗格上的变量名称字段中添加一个对象类型变量,并将0用作结果名称将“执行SQL任务”的结果分配给此变量。