SSIS - SQL 命令 - 参数
SSIS - SQL Command - Parameters
我根据哈迪给出的解决方案编辑了问题。
我在 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 来自变量的命令
变量名称:用户::查询
在 OLE DB 源连接中,我已将 DelayValidation 设置为 True
在我 运行 打包之前,我收到了这个错误
我该如何解决这个问题?谢谢
首先,您正在使用 project parameter not a project variable
您无法使用参数化的 sql 命令实现此目的,您必须在变量中构建整个查询,并将其用作来源 (SQL 来自变量的命令)
参数用于指定单个值,而不是连接查询字符串
创建一个SSIS变量(User::Query
),将变量Evaluate As Expression
属性改为True,在变量Expression
属性中写入表达式。喜欢下面
"SELECT cola, colB FROM myTable WHERE myID IN (" + @[$Project::MyProjectVariable] + ")"
注意:要在表达式中使用项目参数,请使用以下语法:@[$Project::MyProjectVariable]
我根据哈迪给出的解决方案编辑了问题。
我在 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 来自变量的命令
变量名称:用户::查询
在 OLE DB 源连接中,我已将 DelayValidation 设置为 True
在我 运行 打包之前,我收到了这个错误
首先,您正在使用 project parameter not a project variable
您无法使用参数化的 sql 命令实现此目的,您必须在变量中构建整个查询,并将其用作来源 (SQL 来自变量的命令)
参数用于指定单个值,而不是连接查询字符串
创建一个SSIS变量(User::Query
),将变量Evaluate As Expression
属性改为True,在变量Expression
属性中写入表达式。喜欢下面
"SELECT cola, colB FROM myTable WHERE myID IN (" + @[$Project::MyProjectVariable] + ")"
注意:要在表达式中使用项目参数,请使用以下语法:@[$Project::MyProjectVariable]