EasySQLMAIL系统操作手册->任务管理->任务SQL命令配置

EasySQLMAIL允许在任务开始前或任务结束后执行一些额外的SQL语句,例如,可以在任务执行成功后执行一个 SQL语句,更新用户自己创建的任务记录表中的一行记录。还可以设置在任务开始前先查询某一个表的数据,当数据满足某些条件时,才继续执行任务。

点击"任务属性"界面中的"SQL命令"Tab页,进入SQL命令管理界面。

SQL命令管理界面

EasySQLMAIL在执行任务时,按SQL命令列表中的从上到下顺序执行SQL命令。

点击"新建SQL",打开"新建SQL命令"对话框:

新建SQL命令对话框

在这个对话框中:

数据源 选择执行SQL语句时要连接的数据源
执行时机 指在什么时候执行SQL语句。
任务开始前执行:指当任务启动后,在开始提取数据前执行SQL语句。
任务结束后执行:指在任务结束后(无论成功还是失败)执行SQL语句
任务成功结束后执行:指在任务成功结束后执行SQL语句
任务失败后执行:指在任务失败后执行SQL语句
作为任务执行的先决条件 对于执行时机为“任务开始前执行”的SQL语句,当选择了此选项时,EasySQLMAIL会检查SQL语句是否返回了数据行,如果SQL语句中的最后一个语句执行后返回的查询为空,这时EasySQLMAIL将认为任务执行的先决条件不成立,进而停止执行任务。
例如:在执行任务前,需要先检查当天的统计数据是否生成,如果未生成,则不执行任务:
SELECT 1 FROM stat_data WHERE stat_date = TRUNC(SYSDATE)
如果当天的数据已生成,那么这个语句返回的果不为空,这时就继续执行任务,否则,语句返回空结果集(没有返回记录),就说明当天的统计数据还没有生成,这时就不继续执行任务。
先决条件不成立时的提示语 指当该语句所对应的先决条件不成立时,如何记录提示语。该提示语将被记录到日志中。
例如,对于上例,当
SELECT 1 FROM stat_data WHERE stat_date = TRUNC(SYSDATE);
返回空结果集时,提示语可以设置为:“当天的统计数据还未生成,任务中止”。这句话将会被记录到任务的执行日志中,便于在查询任务日志时理解任务未执行的原因。
SQL语句 输入一个或多个SQL语句。如果有多个语句要执行,各个语句之间用“;”(分号)分隔开。
例如:
DELETE FROM t_status WHERE id = 1;
SELECT 1 FROM stat_date WHERE org_id = 8001441;

您还可以在SQL语句中嵌入变量。例如:
SELECT 1 FROM stat_data WHERE org_id = #orgId#;
这样就在SQL语句中嵌入了一个名为orgId的变量。EasySQLMAIL在执行这个SQL语句时,会根据变量的配置,先计算orgId变量的值,然后将orgId的值替换到SQL语句中,再执行替换后的SQL语句。如果变量orgId计算出的值是8001441,那么替换到SQL语句中后,最后实际执行的SQL语句就是:
SELECT * FROM stat_data WHERE org_id = 8001441;