未验证 提交 6d0375e4 编写于 作者: _和's avatar _和 提交者: GitHub

fix sql task bug #2739 (#2741)

* Solve the failure to execute non-query sql

* fix sql task bug
Co-authored-by: Nsunchaohe <sunzhaohe@linklogis.com>
Co-authored-by: Nqiaozhanwei <qiaozhanwei@outlook.com>
Co-authored-by: Nlgcareer <18610854716@163.com>
上级 cfd83235
......@@ -213,27 +213,28 @@ public class ParameterUtils {
return inputString;
}
/**
* new
* $[yyyyMMdd] replace scheduler time
* $[yyyyMMdd] replace schedule time
* @param text
* @param paramsMap
* @param scheduleTime
* @return
*/
public static String replaceScheduleTime(String text, Date scheduleTime, Map<String, Property> paramsMap) {
if (paramsMap != null) {
public static String replaceScheduleTime(String text, Date scheduleTime) {
Map<String, Property> paramsMap = new HashMap<>();
//if getScheduleTime null ,is current date
if (null == scheduleTime) {
scheduleTime = new Date();
}
String dateTime = org.apache.dolphinscheduler.common.utils.DateUtils.format(scheduleTime, Constants.PARAMETER_FORMAT_TIME);
Property p = new Property();
p.setValue(dateTime);
p.setProp(Constants.PARAMETER_SHECDULE_TIME);
paramsMap.put(Constants.PARAMETER_SHECDULE_TIME, p);
text = ParameterUtils.convertParameterPlaceholders2(text, convert(paramsMap));
}
return text;
return text;
}
......
......@@ -179,7 +179,7 @@ public class SqlTask extends AbstractTask {
}
//new
//replace variable TIME with $[YYYYmmddd...] in sql when history run job and batch complement job
sql = ParameterUtils.replaceScheduleTime(sql, taskExecutionContext.getScheduleTime(), paramsMap);
sql = ParameterUtils.replaceScheduleTime(sql, taskExecutionContext.getScheduleTime());
// special characters need to be escaped, ${} needs to be escaped
String rgex = "['\"]*\\$\\{(.*?)\\}['\"]*";
setSqlParamsMap(sql, rgex, sqlParamsMap, paramsMap);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册