Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于一个变量的SSIS包_Ssis - Fatal编程技术网

基于一个变量的SSIS包

基于一个变量的SSIS包,ssis,Ssis,您好,我有一个SSIS包,它可以执行以下任务:a)截断表中最近7天的数据(如果有的话),然后重新加载,所有这些都放在序列容器中,运行正常。现在我计划删除硬编码的值7,并引入一个变量NoOfDays,我可以在运行时提供它。这可以实现吗 我添加了一个变量,并试图将其映射到ExecuteSQL任务的参数…它给出了以下错误: 我甚至希望该值可用于下一步的数据流任务 [Execute SQL Task] Error: Executing the query "delete from USER_CONTE

您好,我有一个SSIS包,它可以执行以下任务:a)截断表中最近7天的数据(如果有的话),然后重新加载,所有这些都放在序列容器中,运行正常。现在我计划删除硬编码的值7,并引入一个变量NoOfDays,我可以在运行时提供它。这可以实现吗

我添加了一个变量,并试图将其映射到ExecuteSQL任务的参数…它给出了以下错误:

我甚至希望该值可用于下一步的数据流任务

[Execute SQL Task] Error: Executing the query "delete  from USER_CONTENT where CONVERT..." failed with the following error: "The variable name '@NoOfDays' has already been declared. Variable names must be unique within a query batch or stored procedure.
Statement(s) could not be prepared.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
我使用的查询是

delete from USER_CONTENT 
where CONVERT(date,ISSUE_DATE)>=CONVERT(DATE,GETDATE()-7) 

这是针对OLE-DB连接的。

我没有足够的分数来发表评论,所以我必须这样问您:您是否使用带“?”的查询参数,如果没有,那么为了将包变量与存储过程一起使用,您需要编写语句来使用它们,而且,不要命名参数,使用默认的0、1、2等。。包分配的。

您可以发布容器中的SQL,指示连接类型(OLE DB/ADO.Net等),还可以指示如何在属性页中映射变量。考虑将来发布所有相关信息。有许多关于设置参数映射的在线指南,也许您可以参考其中一个。您好,我使用的SQL是从用户内容中删除,其中CONVERT(date,ISSUE_date)>=CONVERT(date,GETDATE()-7),这是一个OLEDB连接。我已将您的查询添加到问题中。现在我们可以看到您的查询,很明显您没有参数占位符(如DroidSlaves答案中所述)。看看这个:然后回复任何具体的问题。嗨,Droid,我没有使用带“?”的pamaeter,我也没有使用SP…我只是想在运行时传递一个不同的数字,而不是上面执行SQL任务中的7…您是否使用变量来存储要放入参数中的值?理想情况下,这是将值传递给参数的最佳(唯一?)方法,除了硬编码之外,这是我唯一的方法。此外,GETDATE()-7对我来说似乎不可靠,因为它没有精确指示要减去的内容。我将改为使用DATEADD函数,并将负7天添加到GETDATE()。