Oracle:job简介(一)

本文深入讲解Oracle数据库中Job调度的实现方法,包括视图查询、字段描述、Job操作流程及实例演示。涵盖Job创建、查询、删除全过程,适用于数据库管理员和开发人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:常见视图简述

(1)相关视图

select * from dba_jobs;
select * from all_jobs;
select * from user_jobs;
select * from dba_jobs_running;--正在运行的job

(2)查询字段描述

字段(列)                类型                                   描述
JOB                       NUMBER                            任务的唯一标示号
LOG_USER                VARCHAR2(30)                 提交任务的用户
PRIV_USER               VARCHAR2(30)                 赋予任务权限的用户
SCHEMA_USER      VARCHAR2(30)                对任务作语法分析的用户模式
LAST_DATE               DATE                                 最后一次成功运行任务的时间
LAST_SEC                              VARCHAR2(8)                   如HH24:MM:SS格式的last_date日期的小时,分钟和秒
THIS_DATE                             DATE                                 正在运行任务的开始时间,如果没有运行任务则为null
THIS_SEC                               VARCHAR2(8)                   如HH24:MM:SS格式的this_date日期的小时,分钟和秒
NEXT_DATE                           DATE                                 下一次定时运行任务的时间
NEXT_SEC                VARCHAR2(8)                    如HH24:MM:SS格式的next_date日期的小时,分钟和秒
TOTAL_TIME                          NUMBER                            该任务运行所需要的总时间,单位为秒
BROKEN                                 VARCHAR2(1)                   标志参数,Y标示任务中断,以后不会运行
INTERVAL                               VARCHAR2(200)               用于计算下一运行时间的表达式
FAILURES                               NUMBER                           任务运行连续没有成功的次数
WHAT                                      VARCHAR2(2000)             执行任务的PL/SQL块
CURRENT_SESSION_LABEL RAW          MLSLABEL     该任务的信任Oracle会话符
CLEARANCE_HI                     RAW MLSLABEL               该任务可信任的Oracle最大间隙
CLEARANCE_LO       RAW  MLSLABEL             该任务可信任的Oracle最小间隙
NLS_ENV                                VARCHAR2(2000)             任务运行的NLS会话设置
MISC_ENV                              RAW(32)                            任务运行的其他一些会话参数 

常用字段:job这个值就是我们操作job的id号,what 操作存储过程的名称,next_date 执行的时间,interval执行间隔。

二:job操作

(1)创建job的主要过程简介

dbms_job.submit(     
    job       OUT binary_ineger,     
    What      IN  varchar2,     
    next_date IN  date,     
    interval  IN  varchar2,     
    no_parse  IN  booean:=FALSE)

job:参数是输出参数,由submit()过程返回的binary_ineger,这个值用来唯一标识一个工作。一般定义一个变量接收,可以去user_jobs视图查询job值。 
what:参数是将被执行的PL/SQL代码块,存储过程名称等。 
next_date:参数指识何时将运行这个工作。 
interval:参数何时这个工作将被重执行。 
no_parse:参数指示此工作在提交时或执行时是否应进行语法分析——true,默认值false。指示此PL/SQL代码在它第一次执行时应进行语法分析,而FALSE指示本PL/SQL代码应立即进行语法分析。

(2)创建job前期准备

1)创建table

create table tab_time(
       currentTime timestamp       
);

2)创建存储过程(插入一条数据)

create or replace procedure pro_time
as
   begin
       insert into tab_time values(sysdate);
   end;

3)调用过程测试 

begin
   pro_time;   
end;

(3)创建job

declare      
   my_job number;
begin
   dbms_job.submit(my_job, 'pro_time;', sysdate, 'sysdate+10/(24*60*60)');
    --每10秒调用一次过程,这里的(24*60*60)一定要用小括号括起来
   commit;
end;

 (4)查询job相关信息

--相关视图dba_jobs,all_jobs,user_jobs
select t.JOB,t.LAST_DATE,t.NEXT_DATE,t.interval from dba_jobs t;

-------------------------------------------
JOB             LAST_DATE	NEXT_DATE        interval
123             .......	        .......          .......


-- 正在运行job
select * from dba_jobs_running;

(5)删除job

begin
   dbms_job.remove(123);
end; 

 

 

 

 

 

                              底线


 

 

 

 


      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值