1

我使用 Execute SQL 任务从数据库中写入三个变量值,如果我检查值是否使用断点正确写入,一切似乎都是正确的。现在我想使用之前在另一个执行 SQL 任务中编写的变量来执行一个过程。问题是变量的值没有正确映射(我认为)。我认为变量不是全局的(事实上,当我检查变量时,值始终为零,而在我编写变量的任务的调试过程中,变量不为零)。我该如何解决这个问题?

这就是我调用该过程的方式:

exec FillCalendar ?, ?, ?, ?

(我有 4 个变量)。

这是参数映射:

在此处输入图像描述

它们在查询中按问号的顺序排列。它们都是 INT 类型。

4

1 回答 1

0

在 SSIS 无法正确识别Execute SQL Task.

我的“最佳实践”是现在为所有输入参数声明占位符变量,然后使用占位符。例如,我可能会将您的存储过程调用更改为:

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存储过程的输入参数名称在哪里。显然你会用正确的数据类型声明你的占位符。

附加信息

您可以参考以下链接以获取有关将变量传入和传入 SSIS 任务的更多信息。

于 2019-07-09T15:15:19.133 回答