尝试在SSIS包中运行Sql Command时出错。
SQL文本:
从表中选择,其中field1 =?和field2 =?
错误:“没有为一个或多个必需参数提供值”
更多信息:
在程序包中执行Sql任务:
(“常规”选项卡)
-连接:ADO.NET
-SQL语句:exec storedprocedureX ?,?
(“参数映射”选项卡)
User::field1 , Input , String , 0 , -1
User::field2, Input, String, 1, -1
包装中设置的变量
field1
值12C
field2
值15A
我遗漏了什么导致在数据流级别无法读取变量值?我在执行SQL任务级别没有问题。
答案 0 :(得分:2)
数据流中的OLE DB命令与控制流中的“执行SQL任务”不同。您似乎正确地描述了执行SQL任务。
要在数据流中使用变量,您需要将其添加到数据流中-最简单的方法是对表达式使用“派生列”。在OLE DB命令之前将派生列添加到数据流中,并按如下方式进行配置:派生列名称:field1;派生列:添加为新列;表达式:@ [User :: field1]。然后,在OLE DB命令的“列映射”下,将列映射为“输入列”:field1;目标列:Param_0,等等。