【Oracle】ORACLE创建定时任务DBMS_SCHEDULER

参考官方文档:
https://docs.oracle.com/en/database/oracle/oracle-database/20/admin/administering-oracle-scheduler.html#GUID-70A0379C-99CE-4508-947F-BE7EA3D45A13

任务:创建一个定时任务,每秒钟向表中插入一行数据,记录时间。

1、建表空间


create tablespace testtbs datafile ‘/oracle/orcl/testtbs01.dbf’ size 10m autoextend on;

2、建用户


create user testu1 default tablespace testtbs identified by testu1;
grant resource,connect to testu1;
grant create job to testu1;

3、建表


create table test_t1(id int, create_date date);

4、创建存储过程


create or replace procedure test_p1
is
begin
insert into test_t1 values(1,sysdate);
commit;
end test_p1;
/

Procedure created.

5、创建一个JOB


begin
dbms_scheduler.create_job (
job_name => ‘test_job1’,
job_type => ‘STORED_PROCEDURE’,
job_action => ‘TEST_P1’,
start_date => sysdate,
repeat_interval => ‘FREQ=MINUTELY;INTERVAL=1’,
enabled => true
);
end;
/

PL/SQL procedure successfully completed.

参数说明:
job_name : 必选, 任务名称
job_type : 必选, 任务类型(
PLSQL_BLOCK, – 执行一个PL/SQL匿名快
STORED_PROCEDURE, – 执行一个存储过程
EXECUTABLE, – 执行一个外部程序
CHAIN – 执行一个CHAIN
)
job_action : 必选, 任务内容, 与job_type配合使用

如果job_type指定的是存储过程,就需要指定存储过程的名字;
如果job_type指定的是PL/SQL块,就需要输入完整的PL/SQL代码;
如果job_type指定的外部程序,就需要输入script的名称或者操作系统的指令名

start_date : 可选, 首次执行时间, 为空时表示立即执行
repeat_interval : 可选, 执行频率, 为空时表示只执行一次(
FREQ=MINUTELY; – 表示间隔单位, 可选值有YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY
INTERVAL=1 – 表示间隔周期
)
enabled : 可选, 是否启用任务

6、调用存储过程


call test_p1();

7、查询当前JOB


select * from v$access where owner=‘ANGEL’;
select OWNER,JOB_NAME,STATE from DBA_SCHEDULER_JOBS where owner=‘ANGEL’;
—scheduled : The job is scheduled to be executed.
—查询JOB状态
SELECT * FROM DBA_SCHEDULER_JOB_DESTS WHERE OWNER=‘ANGEL’;
—查询每次执行详情
select * from USER_SCHEDULER_JOB_RUN_DETAILS;

8、禁用JOB


BEGIN
DBMS_SCHEDULER.DISABLE(‘TEST_JOB1’);
END;
/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DBMS_SCHEDULEROracle数据库中的一个内置程序包,用于管理和调度作业、程序和链。它是Oracle Scheduler的主要接口,可以通过它来创建、修改和删除作业、程序和链,以及控制它们的执行时间和执行方式。 下面是一些DBMS_SCHEDULER的常见用法: 1. 创建作业 使用DBMS_SCHEDULER.CREATE_JOB过程可以创建作业。在创建作业时,需要指定作业名称、作业类型、作业所属的程序等信息。 2. 修改作业 使用DBMS_SCHEDULER.SET_ATTRIBUTE过程可以修改作业的属性,如作业的状态、开始时间、结束时间等。 3. 删除作业 使用DBMS_SCHEDULER.DROP_JOB过程可以删除作业。 4. 运行作业 使用DBMS_SCHEDULER.RUN_JOB过程可以手动运行作业。 5. 暂停作业 使用DBMS_SCHEDULER.DISABLE过程可以暂停作业的执行。 6. 恢复作业 使用DBMS_SCHEDULER.ENABLE过程可以恢复暂停的作业。 7. 创建程序 使用DBMS_SCHEDULER.CREATE_PROGRAM过程可以创建程序。在创建程序时,需要指定程序名称、程序类型、程序所属的语言等信息。 8. 修改程序 使用DBMS_SCHEDULER.SET_PROGRAM_ARGUMENT_VALUE过程可以修改程序的参数值。 9. 删除程序 使用DBMS_SCHEDULER.DROP_PROGRAM过程可以删除程序。 10. 创建链 使用DBMS_SCHEDULER.CREATE_CHAIN过程可以创建链。在创建链时,需要指定链名称、链包含的步骤等信息。 11. 修改链 使用DBMS_SCHEDULER.SET_CHAIN_STEP_ATTRIBUTE过程可以修改链的步骤属性,如步骤名称、步骤类型、步骤所属的程序等。 12. 删除链 使用DBMS_SCHEDULER.DROP_CHAIN过程可以删除链。 以上是一些DBMS_SCHEDULER的常见用法,具体使用方法可参考Oracle官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值