您可以创建一个作业并使用DBMS_SCHEDULER安排它。您的所有逻辑都可以驻留在 PL/SQL过程中,然后安排该过程以所需的时间间隔执行。
例如,
SQL> BEGIN
2 DBMS_SCHEDULER.create_job (
3 job_name => 'test_job',
4 job_type => 'PLSQL_BLOCK',
5 job_action => 'BEGIN my_job_procedure; END;',
6 start_date => SYSTIMESTAMP,
7 repeat_interval => 'freq=0; byminute=0; bysecond=30;',
8 end_date => NULL,
9 enabled => TRUE,
10 comments => 'Job defined entirely by the CREATE JOB procedure.');
11 END;
12 /
PL/SQL procedure successfully completed.
SQL>
SQL> SELECT JOB_NAME, ENABLED FROM DBA_SCHEDULER_JOBS where job_name ='TEST_JOB'
2 /
JOB_NAME ENABL
-------------------- -----
TEST_JOB TRUE
SQL>
上述作业将根据您的SYSTIMESTAMP启动,然后my_job_procedure
每30 秒执行一次该过程。
在此处查看更多示例。