在PL/SQL中,可以使用DBMS_SCHEDULER来定时执行存储过程。以下是一个示例:
1. 创建一个存储过程:
CREATE OR REPLACE PROCEDURE my_procedure ASBEGIN
-- 在这里编写需要执行的代码
END;
2. 创建一个作业:
BEGINDBMS_SCHEDULER.CREATE_JOB (
job_name => 'my_job',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN my_procedure; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=0; BYMINUTE=0; BYSECOND=0;',
end_date => NULL,
enabled => TRUE,
auto_drop => FALSE
);
END;
在上述示例中,`start_date`指定了作业的开始时间,`repeat_interval`指定了作业的重复执行间隔,这里是每天的0点0分0秒执行一次。`enabled`指定了作业是否启用。
3. 运行作业:
BEGINDBMS_SCHEDULER.RUN_JOB('my_job');
END;
以上代码将手动运行名为`my_job`的作业。
通过使用DBMS_SCHEDULER,可以灵活地定时执行存储过程,并根据自己的需求设置执行时间和频率。