0
我有一个SSIS包,它遍历一个表,并为表中的每一行,将两个不同列的值作为参数传递给存储过程。至少,这是它应该做的。它实际上做的是给我这个错误:引用SSIS包中的变量
[Execute SQL Task] Error: Executing the query "EXEC sproc_AccessImport @mAccessLocation (SELECT M..." failed with the following error: "Must declare the scalar variable "@mAccessLocation".". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
我为了使该抓住信息的一部分跟着this tutorial,而应该执行存储过程的代码是:
EXEC sproc_AccessImport @mAccessLocation (SELECT MVID FROM tbl_AccessMailDataFiles WHERE FileLocation = @mAccessLocation)
我一直在网上寻找,但没有发现任何有用的东西。这是我第一次使用SSIS,所以我怀疑我只是做错了什么。有谁知道究竟是什么?谢谢。
编辑:我试图映射的变量作为参数,与选项:
Variable Name: User::mAccessLocation
Direction: Input
Data Type: VARCHAR
Parameter Name: Path
Parameter Size: 200
,改变了SQL查询:
EXEC sproc_AccessImport @Path (SELECT MVID FROM tbl_AccessMailDataFiles WHERE FileLocation = @Path)
现在给我的错误:
[Execute SQL Task] Error: Executing the query "EXEC sproc_AccessImport @Path (SELECT MVID FROM tb..." failed with the following error: "Must declare the scalar variable "@Path".". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
所以,真的,同样的错误。
我编辑了我的答案并提供了答案,因为它比试图将它置于评论中更容易。如果有任何其他信息可以帮助,请告诉我。我不确定哪些会有所帮助。 – SaintWacko 2012-08-10 20:08:20
即使您在执行SQL任务的属性中声明了名称,参数仍应该由?用于OLEDB连接。 – SQLMD 2012-08-10 20:32:28
啊,好的。这很奇怪。那么,现在它说'[执行SQL任务]错误:执行查询“EXEC sproc_AccessImport?(SELECT MVID FROM tbl_Ac ...”失败,出现以下错误:“没有为一个或多个必需参数给出值”。听起来像它可能是一个抓取数据的问题, – SaintWacko 2012-08-10 20:36:37