SSIS中执行SQL任务组件参数传递的问题

时间:2021-08-01 04:17:45

原文:SSIS中执行SQL任务组件参数传递的问题

症状: 执行SQL任务,传递参数到子查询中,执行报错。

错误: 失败,错误如下:“无法从使用 sub-select 查询的 SQL 语句中派生出参数信息。请在准备命令之前设置参数信息。”。失败的原因可能有: 查询本身有问题、未正确设置 "ResultSet" 属性、未正确设置参数或未正确建立连接。

原因:

在 OLE DB 连接管理器中使用参数

如果执行 SQL 任务使用 OLE DB 连接管理器,则该任务的 BypassPrepare 属性可用。如果执行 SQL 任务使用带有参数的 SQL 语句,则应将此属性设置为 true。

使用 OLE DB 连接管理器时,不能使用参数化的子查询,这是因为执行 SQL 任务不能通过 OLE DB 访问接口得到参数信息。但是,您可以使用表达式将参数值串联到查询字符串中,并设置该任务的 SqlStatementSource 属性。

解决方法:设置BypassPrepare 属性为 true。