Oracle存储过程

147 阅读3分钟

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)来创建一个定时作业,以每天删除一个月前的数据。以下是这些字段的含义:

  1. job_name:指定作业的名称。在这里,作业名称为'PURGE_HAZARD_GAS_DATA_DAILY'。

  2. job_type:指定作业的类型。在这里,作业类型为'PLSQL_BLOCK',表示作业的操作是一个PL/SQL代码块。

  3. 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列中日期早于当前日期一个月前的数据。
  4. start_date:指定作业的启动日期和时间。在这里,start_date使用SYSTIMESTAMP来设置当前时间作为启动时间。

  5. repeat_interval:指定作业的重复间隔。在这里,repeat_interval设置为每天运行一次。具体含义如下:

    • FREQ=DAILY:表示作业的重复频率为每天。
    • INTERVAL=1:表示每天运行一次。
  6. enabled:指定作业是否启用。在这里,enabled设置为TRUE,表示作业创建后将立即启用,可以按照指定的重复间隔运行。

总的来说,这段代码创建了一个名为'PURGE_HAZARD_GAS_DATA_DAILY'的作业,每天运行一次,它的操作是执行一个PL/SQL代码块,该代码块包含了一个DELETE语句,用于删除一个月前的数据。作业会从指定的启动日期开始运行,并一直重复执行,直到被禁用或删除。

  1. 查看作业的状态: 使用以下查询可以查看特定作业的状态:

    sql复制代码
    SELECT job_name, state
    FROM user_scheduler_jobs
    WHERE job_name = 'PURGE_HAZARD_GAS_DATA_DAILY';
    

    这将返回名为'PURGE_HAZARD_GAS_DATA_DAILY'的作业的状态,包括是否处于活动状态(ENABLED)或停用状态(DISABLED)。

  2. 查看作业执行历史: 使用以下查询可以查看特定作业的执行历史:

    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'的作业的执行历史,包括执行日期、执行状态等信息。

  3. 查看作业的详细信息: 使用以下查询可以查看特定作业的详细信息,包括其配置和参数:

    sql复制代码
    SELECT *
    FROM user_scheduler_jobs
    WHERE job_name = 'PURGE_HAZARD_GAS_DATA_DAILY';
    

    这将返回名为'PURGE_HAZARD_GAS_DATA_DAILY'的作业的所有详细信息,包括作业类型、操作、启动时间、重复间隔等。