ADF预复制脚本动态生成日期条件报错,请求排查解决
ADF复制活动预复制脚本动态日期语法修复
问题根源
你之前的脚本错误混合了ADF表达式的两种写法(@开头的表达式和@{...}嵌套语法),导致SQL解析时把ADF表达式识别成了SQL的非法语法,从而报错。
正确写法(三种可选)
- 直接用utcNow生成目标格式(最简洁)
DELETE FROM HCP_CALL_CNT WHERE call_mo = '@{utcNow('yyyy-MM')}'
utcNow('yyyy-MM')会直接输出2023-04格式的字符串,包裹单引号后完全符合SQL语法。
- 使用concat函数(正确嵌套写法)
DELETE FROM HCP_CALL_CNT WHERE call_mo = '@{concat(utcNow('yyyy'), '-', utcNow('MM'))}'
注意:在@{...}内部直接调用ADF函数,不需要额外加@前缀。
- 使用formatDateTime函数(更灵活)
如果需要基于其他日期变量生成格式,推荐用这个函数:
DELETE FROM HCP_CALL_CNT WHERE call_mo = '@{formatDateTime(utcNow(), 'yyyy-MM')}'
以上三种写法都会生成你期望的SQL语句,解决语法编译失败的问题。
内容的提问来源于stack exchange,提问作者Anu
相关产品推荐
相关产品推荐

