数据流问题

时间:2019-05-17 12:18:05

标签: sql-server ssis dataflow

尝试在SSIS包中运行Sql Command时出错。

  • 任务:DataFlow任务
  • 连接:ADO.NET
  • 数据访问模式:Sql Command
  • SQL文本:

    从表中选择,其中field1 =?和field2 =?

  

错误:“没有为一个或多个必需参数提供值”

更多信息:

在程序包中执行Sql任务:

(“常规”选项卡) -连接:ADO.NET -SQL语句:exec storedprocedureX ?,?

(“参数映射”选项卡)

User::field1 , Input , String , 0 , -1
User::field2, Input, String, 1, -1

包装中设置的变量

  • field112C
  • field215A

我遗漏了什么导致在数据流级别无法读取变量值?我在执行SQL任务级别没有问题。

1 个答案:

答案 0 :(得分:2)

数据流中的OLE DB命令与控制流中的“执行SQL任务”不同。您似乎正确地描述了执行SQL任务。

要在数据流中使用变量,您需要将其添加到数据流中-最简单的方法是对表达式使用“派生列”。在OLE DB命令之前将派生列添加到数据流中,并按如下方式进行配置:派生列名称:field1;派生列:添加为新列;表达式:@ [User :: field1]。然后,在OLE DB命令的“列映射”下,将列映射为“输入列”:field1;目标列:Param_0,等等。