如何在Azure Data Factory中移除变量首尾的单引号?
Azure Data Factory 变量首尾多余单引号去除方案
直接使用ADF内置的字符串处理函数组合即可实现需求,核心表达式如下:
@if( startsWith(variables('Query'), ''''), substring(variables('Query'), 1, length(variables('Query')) - 2), variables('Query') )
表达式说明
- 首先用
startsWith(variables('Query'), '''')判断变量是否以单引号开头:ADF表达式中单引号需要用两个单引号转义,因此'''实际代表的匹配字符是单个单引号 - 当条件满足时,用
substring方法从索引1的位置(跳过第一个单引号)开始截取字符串,截取长度为原字符串总长度减2,刚好去掉末尾的多余单引号 - 当条件不满足时直接返回原变量值,不会做任何修改
效果验证
- 若输入值为
'Select CustomerName From Customer Where City = ''London''',处理后输出为Select CustomerName From Customer Where City = 'London',符合预期 - 若输入值本身无首尾多余单引号,将直接返回原值,不会误删内容
如果你需要更严谨的校验,避免仅有开头单引号、无结尾单引号时的截断异常,可以使用双条件判断的版本:
@if( and(startsWith(variables('Query'), ''''), endsWith(variables('Query'), '''')), substring(variables('Query'), 1, length(variables('Query')) - 2), variables('Query') )
使用方式
你可以在需要用到Query变量的位置直接嵌套该表达式,也可以新增一个「设置变量」活动,将处理后的结果赋值给新的变量供后续流程使用。
内容的提问来源于stack exchange,提问作者Kenny_I
相关产品推荐
相关产品推荐

