我根据哈迪给出的解决方案编辑了这个问题。
我在VS 2013中使用SSIS。 我有一个名为MyVariableList和Query的用户变量。
这是用户变量中的表达式查询:“SELECT cola,colB FROM myTable WHERE myID IN(”+ @ [User :: MyVariableList] +“)”
我有一个脚本任务,用于设置@ [User :: MyVariableList]的值。
Dts.Variables["User::MyVariableList"].Value = sList;
之后,我有一个带有OLE DB源的数据流任务(从1个数据库)到另一个OLE DB目的地(另一个服务器上的另一个数据库)。 在OLE DB源代码编辑器中,我设置 数据访问模式:来自变量的SQL命令 变量名:User :: Query
答案 0 :(得分:1)
首先,您正在使用project parameter而不是project variable
使用参数化sql命令无法实现此目的,您必须在变量中构建整个查询,并将其用作源(来自变量的SQL命令)
参数用于指定单个值,而不是连接查询字符串
创建一个SSIS变量(Evaluate As Expression
),将变量Expression
属性更改为True,并将该表达式写入变量"SELECT cola, colB FROM myTable WHERE myID IN (" + @[$Project::MyProjectVariable] + ")"
属性中。如下所示
@[$Project::MyProjectVariable]
注意:要在表达式中使用项目参数,请使用以下语法:{
"name": "test-mmc-deploy",
"id": "local$3d2075c5-73c0-47aa-8df5-cee3a70f68c4",
"lastModified": "Mon, 1 May 2017 13:56:15.980 AEST",
"servers": [
"local$520ee705-bdbb-4132-94cf-63bb213d2b46"
],
"status": "DEPLOYED",
"applications": [
"local$f3d791bd-14d9-4491-9541-5fa04d8c3164"
],
"href": "http://localhost:9090/mmc-console-3.8.2/api/deployments/local$3d2075c5-73c0-47aa-8df5-cee3a70f68c4",
"clusterNames": [],
"reconciled": false,
"clusterIds": []
}