Oracle数据库Job应用

    xiaoxiao2023-10-14  170

    1.Job简介

    目前Oracle数据库设置定时任务job调度一般有两种方式,分别是dbms_scheduler创建job调度和dbms_job创建job调度。dbms_scheduler创建job调度是在10g以后才有的,甲骨文公司为了用来替换dbms_job而提供了更强大的功能与更灵活的机制/管理。下面介绍这两种方式。

    2.dbms_scheduler

    2.1参数介绍

    job_name:job名字; job_type:job类型,支持三种类型:PLSQL_BLOCK——PL/SQL语句块、STORED_PROCEDURE——存储过程、 EXECUTABLE——外部程序(外部程序可以是一个shell脚本,也可以是操作系统级别的指令);job_action:根据job_type的不同,job_action有相对应的内容;number_of_arguments:参数个数;start_date:执行开始时间;repeat_interval:指定job执行频率(如每分钟执行一次、每天执行一次等);end_date:执行结束时间;job_class:jobclass的名字;enabled:指定是否自动激活job,为true代表自动激活,false代表不激活;auto_drop:执行完是否自动drop;comments:对于job的简单说明。

    2.2关于定时任务的一些常用过程

    1) dbms_scheduler.run(jobName) 运行job

    2) dbms_scheduler.stop_job(jobName,force) 停止job,force默认为false,Oracle建议false停止失败情况下,使用true,且使用true需要有manage scheduler权限

    3) dbms_scheduler.drop_job(jobName) 删除job

    4) dbms_scheduler.enable(jobName) 打开job

    5) dbms_scheduler.disable(jobName,force) 禁用job,force参数用于dependencies,如果TRUE,即使其他对象依赖于它,操作也能成功

    3.dbms_job

    创建存储过程:

    创建job方式一:执行SQL语句

    创建job方式二:PL/SQL界面操作,如下图所示

    常用过程:

    删除job: dbms_job.remove(jobno);修改要执行的操作: job:dbms_job.what(jobno, what);修改下次执行时间:dbms_job.next_date(jobno, next_date);修改间隔时间:dbms_job.interval(jobno, interval);启动job: dbms_job.run(jobno);停止job: dbms.broken(jobno, broken, nextdate);–-broken为boolean值。查询数据库中job列表:

    最新回复(0)