ADF管道表达式构建器中Concat结合Replace函数查询报错求助
问题解决:ADF表达式中Replace函数的单引号转义错误
错误原因
你的表达式报错核心是SQL语句中的单引号未正确转义。在ADF的表达式字符串中,要表示SQL语法里的单引号,必须用**两个连续单引号('')**进行转义,否则会被ADF误判为字符串的结束标记,导致整个SQL语句语法断裂。
修正后的完整表达式
@if(contains(activity('ADS_Lookup').output,'firstRow'),concat('select ID,DESCRIPTION,UPDATE_USER,UPDATE_DATE,UPDATE_VERSION,IS_DEFAULT,EXTERNAL_CODE,DISCONTINUE_DATE,RESERVED_VALUE_FLAG,DEVELOPER_DESC,SORT_ORDER,SYSTEM_MODULE_ID,ACTION_ID,PARAMETER_TYPE,MODIFIABLE_BY_BC, Replace(VALUE,''/'','''') as VALUE,EXT_DATA from [dbo].[T_APPLICATION_PARAMS] where update_date >=''',activity('ADS_Lookup').output.firstRow.startTime,''''),concat('select ID,DESCRIPTION,UPDATE_USER,UPDATE_DATE,UPDATE_VERSION,IS_DEFAULT,EXTERNAL_CODE,DISCONTINUE_DATE,RESERVED_VALUE_FLAG,DEVELOPER_DESC,SORT_ORDER,SYSTEM_MODULE_ID,ACTION_ID,PARAMETER_TYPE,MODIFIABLE_BY_BC,Replace(VALUE,''/'','''') as VALUE,EXT_DATA from[dbo].[T_APPLICATION_PARAMS]'))
关键修正点
将原SQL片段中的 Replace(VALUE,'/','') 替换为 Replace(VALUE,''/'',''''):
- 原SQL里的
'/'在ADF字符串中需转义为''/'(两个单引号包裹斜杠) - 原SQL里的空字符串
''需转义为''''(四个连续单引号,代表SQL中的一个空字符串)
内容的提问来源于stack exchange,提问作者TANMAY SETHI
相关产品推荐
相关产品推荐

