【发布时间】:2014-05-22 20:40:55
【问题描述】:
我想知道是否有人可以在这里帮助我。我想构建一个类似这样的动态 sql 命令
SELECT * from Table1 Where CID > 10 + and LID in (11,12,15,20)
为此我设置了两个变量并设置如下表达式
"SELECT * from Table1 Where CID >" + (@User:Var1) + "and LID in "+(@User:Var2)
var1 是从单行 sql 任务结果集生成的 Int64 类型,它工作正常,而 Var2 是 Object 类型,我无法让 Var2 在上述语句中替换“和 Lid (11, 12,15,20)”。
任何帮助将不胜感激
【问题讨论】:
-
您是否收到错误消息?
-
问得好,最重要的是,您的 Var2 并非设计为以这种方式工作。如果您可以向我提供一些关于您计划如何处理 select 语句中的记录的其他信息,我们可以考虑解决此问题。
-
嗨哥斯拉,感谢您的回复,我想做的就是在数据流任务上使用表达式构建动态 sql。该声明将包括来自两个 var 的详细信息。第一个是可以正常工作的单个值,第二个是我需要用逗号转置为“in (11,12,15,20)”的列表。我的语句应该看起来像这样 SELECT * from Table1 Where CID > @@10@@ and LID in @@(11,12,15,20)@@。 @@ 之间的项目应该来自变量。
-
你不能在 SSIS 表达式中使用 Object 类型的变量。您将需要使用脚本任务将
@[User::Var2]中的类数组对象转换为字符串
标签: variables ssis sqlcommand