使用表达式生成器删除 SQL SSIS 变量中的结尾括号?

Posted

技术标签:

【中文标题】使用表达式生成器删除 SQL SSIS 变量中的结尾括号?【英文标题】:Remove the ending parentheses in SQL SSIS variable using expression builder? 【发布时间】:2021-12-06 06:59:56 【问题描述】:

在 SSIS 中传递变量,它用于获取/传递查询。问题是传入查询包含“;”括号最后这样));

这导致了如何在 SSIS 中使用表达式构建来删除括号

"SELECT DISTINCT 
col1,
col2,
FROM(
"+
@[User::Query]+")Das"

这是我的尝试:

   "SELECT DISTINCT 
    col1,
    col2,
    FROM(DT_WSTR)REPLACE("+
@[User::Query]+",";",""))Das"

第二个

"SELECT 
Col1,Col2,
FROM(
"+
(DT_WSTR, "20")FINDSTRING( ( @[User::Query]), ";",1 )  == "1" ? RTRIM( @[User::Query]): ( @[User::Query])+")DM"

这可以删除';'但它会删除 ';' 之前的字符还有(SELECT Col1,Col2,FROM)

如何使用表达式生成器自动删除));

【问题讨论】:

【参考方案1】:

这就是答案

(DT_WSTR, "20")FINDSTRING( REVERSE( @[User::Query]), ";",1 )  == "1" ?
"SELECT DISTINCT CHANNEL, TRACK, MODULE, FEATURE FROM("+ SUBSTRING( @[User::Query] , 1,  LEN(@[User::Query])-1) +")DM"
:
"SELECT DISTINCT CHANNEL, TRACK, MODULE, FEATURE FROM("+@[User::Query]+")DM"

请发布您的选项

【讨论】:

以上是关于使用表达式生成器删除 SQL SSIS 变量中的结尾括号?的主要内容,如果未能解决你的问题,请参考以下文章

SSIS变量属性中EvaluateAsExpression设置的作用

008_SSIS 变量赋值的几种方式

如何在 SSIS 包中使用变量和 SQL 代码?

SSIS 变量“变量”的表达式评估失败。表达式中有错误

如何在 ssis 包中的变量中获取当前周星期一的日期

如何理解 ssis 中的表达逻辑