1、每天定时删除一个月前的数据 BEGIN
DBMS_SCHEDULER.create_job (
job_name => 'PURGE_HAZARD_GAS_DATA_DAILY',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN DELETE FROM HAZARD_GAS_RECORD WHERE RECORD_TIME < SYSDATE - INTERVAL ''1'' MONTH; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; INTERVAL=1',
enabled => TRUE
);
END;
/
这段代码使用Oracle的作业调度器(DBMS_SCHEDULER)来创建一个定时作业,以每天删除一个月前的数据。以下是这些字段的含义:
-
job_name:指定作业的名称。在这里,作业名称为'PURGE_HAZARD_GAS_DATA_DAILY'。 -
job_type:指定作业的类型。在这里,作业类型为'PLSQL_BLOCK',表示作业的操作是一个PL/SQL代码块。 -
job_action:指定作业的操作或任务。在这里,job_action包含了一个PL/SQL代码块,它实际执行了一个DELETE语句以删除表中一个月前的数据。解释如下:BEGIN和END;:这是PL/SQL代码块的开始和结束。DELETE FROM HAZARD_GAS_RECORD WHERE RECORD_TIME < SYSDATE - INTERVAL '1' MONTH;:这是实际执行的SQL语句。它会从名为'HAZARD_GAS_RECORD'的表中删除RECORD_TIME列中日期早于当前日期一个月前的数据。
-
start_date:指定作业的启动日期和时间。在这里,start_date使用SYSTIMESTAMP来设置当前时间作为启动时间。 -
repeat_interval:指定作业的重复间隔。在这里,repeat_interval设置为每天运行一次。具体含义如下:FREQ=DAILY:表示作业的重复频率为每天。INTERVAL=1:表示每天运行一次。
-
enabled:指定作业是否启用。在这里,enabled设置为TRUE,表示作业创建后将立即启用,可以按照指定的重复间隔运行。
总的来说,这段代码创建了一个名为'PURGE_HAZARD_GAS_DATA_DAILY'的作业,每天运行一次,它的操作是执行一个PL/SQL代码块,该代码块包含了一个DELETE语句,用于删除一个月前的数据。作业会从指定的启动日期开始运行,并一直重复执行,直到被禁用或删除。
-
查看作业的状态: 使用以下查询可以查看特定作业的状态:
sql复制代码 SELECT job_name, state FROM user_scheduler_jobs WHERE job_name = 'PURGE_HAZARD_GAS_DATA_DAILY';这将返回名为'PURGE_HAZARD_GAS_DATA_DAILY'的作业的状态,包括是否处于活动状态(ENABLED)或停用状态(DISABLED)。
-
查看作业执行历史: 使用以下查询可以查看特定作业的执行历史:
sql复制代码 SELECT job_name, log_date, status FROM user_scheduler_job_log WHERE job_name = 'PURGE_HAZARD_GAS_DATA_DAILY' ORDER BY log_date DESC;这将返回名为'PURGE_HAZARD_GAS_DATA_DAILY'的作业的执行历史,包括执行日期、执行状态等信息。
-
查看作业的详细信息: 使用以下查询可以查看特定作业的详细信息,包括其配置和参数:
sql复制代码 SELECT * FROM user_scheduler_jobs WHERE job_name = 'PURGE_HAZARD_GAS_DATA_DAILY';这将返回名为'PURGE_HAZARD_GAS_DATA_DAILY'的作业的所有详细信息,包括作业类型、操作、启动时间、重复间隔等。