oraclr设置定时任务
时间: 2023-11-18 16:00:00 浏览: 79
配置定时任务
要在 Oracle 数据库中设置定时任务,可以使用 Oracle 的内置定时任务程序包 DBMS_SCHEDULER。下面是设置定时任务的一些步骤:
1. 创建作业(Job):使用 CREATE_JOB 过程创建作业,指定作业名称、作业类型、作业所属的程序、作业开始时间和其他参数。
2. 创建程序(Program):使用 CREATE_PROGRAM 过程创建程序,指定程序名称、程序类型、程序位置、程序参数等。
3. 创建计划(Schedule):使用 CREATE_SCHEDULE 过程创建计划,指定计划名称、计划类型、计划参数等。
4. 将作业与程序和计划关联:使用 ADD_JOB_SCHEDULE 过程将作业与程序和计划关联,这样作业就会按照计划和程序的要求自动运行。
5. 启动作业:使用 ENABLE 过程启动作业,这样作业就会按照计划和程序的要求自动运行。
下面是一个示例:
```
-- 创建程序
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM(
program_name => 'my_program',
program_type => 'STORED_PROCEDURE',
program_action => 'my_procedure',
number_of_arguments => 0,
enabled => TRUE);
END;
-- 创建计划
BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE(
schedule_name => 'my_schedule',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY;BYHOUR=0;BYMINUTE=0;BYSECOND=0',
enabled => TRUE);
END;
-- 创建作业
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'my_job',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN my_procedure; END;',
start_date => SYSTIMESTAMP,
enabled => TRUE);
END;
-- 将作业与程序和计划关联
BEGIN
DBMS_SCHEDULER.ADD_JOB_SCHEDULE(
job_name => 'my_job',
schedule_name => 'my_schedule',
program_name => 'my_program');
END;
```
以上代码创建了一个作业,该作业每天凌晨0点运行一个名为 "my_procedure" 的存储过程。如果需要修改或删除作业,可以使用相应的 DBMS_SCHEDULER 过程进行操作。
阅读全文