我使用Execute SQL任务从数据库中写入了三个变量值,并且如果我检查是否用断点正确写入了值,那么一切似乎都是正确的。 现在,我想使用之前在另一个执行SQL任务中编写的变量来执行过程。问题在于变量的值未正确映射(我认为)。 我以为变量不是全局变量(实际上,当我在编写变量的任务中进行调试时,检查变量的值始终为零)。 我该如何解决这个问题?
这就是我所说的程序:
exec FillCalendar ?, ?, ?, ?
(我有4个变量)。
这是参数映射:
它们在查询中按问号顺序排列。 它们都是INT类型。
答案 0 :(得分:0)
在SSIS无法正确识别Execute SQL Task
中的输入参数之前,我遇到了问题。
我的“最佳实践”是现在为所有输入参数声明占位符变量,然后使用占位符。例如,我可以将您存储的proc调用更改为:
DECLARE @Param1 VARCHAR(100)
DECLARE @Param2 INT
DECLARE @Param3 BIT
DECLARE @Param4 DATE
SET @Param1 = ?
SET @Param2 = ?
SET @Param3 = ?
SET @Param4 = ?
EXEC FillCalendar @ProcInput1 = @Param1, @ProcInput2 = @Param2, @ProcInput3 = @Param3, @ProcInput4 = @Param4
其中@ProcInput1, @ProcInput2, @ProcInput3, and @ProcInput4
是存储的proc的输入参数名称。显然,您将使用正确的数据类型声明占位符。
其他信息
您可以参考以下链接,以获得有关将变量从SSIS任务传入和传给SSIS任务的更多信息。