我根据Hadi给出的解决方案编辑了问题。SSIS - SQL命令 - 参数
我在VS 2013中使用SSIS。 我有一个名为MyVariableList和Query的用户变量。
这是在用户变量查询表达式: “SELECT可乐,COLB FROM myTable的WHERE本身份识别码IN(” + @ [用户:: MyVariableList] + “)”
我有一个脚本任务设置@ [User :: MyVariableList]的值。
Dts.Variables["User::MyVariableList"].Value = sList;
在那之后,我有一个数据流任务使用OLE DB源(从1个数据库)到另一个OLE DB目标(另一台服务器上的另一个数据库)。 在OLE DB源代码编辑器,我设置 数据访问模式:SQL命令从变量 变量名:用户::查询
在OLE DB源连接,我已经设置了DelayValidation为True
之前,我甚至可以运行该软件包,我得到这个错误 我该如何解决这个问题?谢谢
如果你想使用分隔字符串逗号一样,你需要使用动态SQL,这是使用表达式实现的。你不能使用参数来做到这一点。请参阅以下参考资料:https://jamessummerlin.com/2015/05/04/ssis-using-expressions-to-build-sql-statements-for-ado-net-connections/ http://stackoverflow.com/questions/ 17071451/ssis-passing-sql-command-as-variable-to-ole-db-source –
MyProjectVariable属于String类型,如果使用2个int类型的参数并传递这些参数,那么它将起作用。 – observer
Man!你在得到答案并接受答案后改变了整个问题?最好问一个新的,这不是堆栈溢出工作的方式! @faujong –