select job,last_date,last_sec,next_date,next_sec,broken,failures from dba_jobs;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 0;

select name,description from v$bgprocess;

Broken()暂停job。

change()改变正在运行的job设置。

Interval()修改时间间隔。

Submit()提交job,获得一个进程号。

Run()运行已经提交的job。

Isubmit()用指定进程号的方式提交job。

Next_Date()修改下次执行时间。

Remove()删除job。

User_Export()过程。

What()修改job执行内容。

1、Broken()过程更新一个已提交的工作的状态,典型地是用来把一个已暂停工作标记为未暂停工作。

这个过程有三个参数:job 、broken与next_date。

PROCEDURE Broken (job IN binary_integer,

Broken IN boolean,

next_date IN date :=SYSDATE)

job参数是工作号,它在进程中唯一标识工作。

broken参数指示此工作是否将标记为破——TRUE说明此工作将标记为破,而FLASE说明此工作将标记为未破。

next_date参数指示在什么时候此工作将再次运行。此参数缺省值为当前日期和时间。

job如果由于某种原因未能成功之行,oracle将重试16次后,还未能成功执行,将被标记为broken重新启动状态为broken的job,有如下两种方式;

a、利用dbms_job.run()立即执行该job

sql>begin

sql>dbms_job.run(:jobno) 该jobno为submit过程提交时返回的job number

sql>end;

sql>/

b、利用dbms_job.broken()重新将broken标记为false

sql>begin

sql>dbms_job.broken (:job,false,next_date)

sql>end;

sql>/

2、Change()过程用来改变指定工作的设置。

这个过程有四个参数:job、what 、next_date与interval。

PROCEDURE Change (job IN binary_integer,

What IN varchar2,

next_date IN date,

interval IN varchar2)

此job参数是一个整数值,它唯一标识此工作。

What参数是由此工作运行的一块PL/SQL代码块。

next_date参数指示何时此工作将被执行。

interval参数指示一个工作重执行的频度。

3、Interval()过程用来显式地设置重执行一个工作之间的时间间隔数。这个过程有两个参数:job与interval。

PROCEDURE Interval (job IN binary_integer,

Interval IN varchar2)

job参数标识一个特定的工作。interval参数指示一个工作重执行的频度。

4、ISubmit()过程用来用特定的工作号提交一个工作。这个过程有五个参数:job、what、next_date、interval与no_parse。

PROCEDURE ISubmit (job IN binary_ineger,

What IN varchar2,

next_date IN date,

interval IN varchar2,

no_parse IN booean:=FALSE)

这个过程与Submit()过程的唯一区别在于此job参数作为IN型参数传递且包括一个由开发者提供的工作号。如果提供的工作号已被使用,将产生一个错误。

5、Next_Date()过程用来显式地设定一个工作的执行时间。这个过程接收两个参数:job与next_date。

PROCEDURE Next_Date(job IN binary_ineger,

next_date IN date)

job标识一个已存在的工作。next_date参数指示了此工作应被执行的日期与时间。

6、Remove()过程来删除一个已计划运行的工作。这个过程接收一个参数:

PROCEDURE Remove(job IN binary_ineger);

job参数唯一地标识一个工作。这个参数的值是由为此工作调用Submit()过程返回的job参数的值。已正在运行的工作不能由调用过程序删除。

7、Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:

PROCEDURE Run(job IN binary_ineger)

job参数标识将被立即执行的工作。

8、Submit()过程,工作被正常地计划好。

这个过程有五个参数:job、what、next_date、interval与no_parse。

PROCEDURE Submit ( job OUT binary_ineger,

What IN varchar2,

next_date IN date,

interval IN varchar2,

no_parse IN booean:=FALSE)

job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。

what参数是将被执行的PL/SQL代码块。

next_date参数指识何时将运行这个工作。

interval参数何时这个工作将被重执行。

no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE指示此PL/SQL代码在它第一次执行时应进行语法分析,而FALSE指示本PL/SQL代码应立即进行语法分析。

9、User_Export()过程返回一个命令,此命令用来安排一个存在的工作以便此工作能重新提交。

此程序有两个参数:job与my_call。

PROCEDURE User_Export(job IN binary_ineger,

my_call IN OUT varchar2)

job参数标识一个安排了的工作。my_call参数包含在它的当前状态重新提交此工作所需要的正文。

10、What()过程应许在工作执行时重新设置此正在运行的命令。这个过程接收两个参数:job与what。

PROCEDURE What (job IN binary_ineger,

What IN OUT varchar2)

job参数标识一个存在的工作。what参数指示将被执行的新的PL/SQL代码。

select what, next_date, interval, failures, broken from dba_jobs where job=103

exec dbms_ijob.run(103);

select failures, broken from dba_jobs where job=103

当使用 dba dbms_job remove , broken 其它用户下的job 时, 会出现ORA-23421 错误。不过可以使用 dbms_ijob package.

job里面的last_date和next_date,以及interval之间是什么关系,last_date到底是记的job的开始执行时间,还是执行结束的时间。next_date到底是job的开始时间还是结束时间加上interval得出的呢?

如果一个Job的执行时间比较长(比如超过了interval),会不会出现多个同样的job同时执行呢?

last_date=开始时间

last_date+interval=next_date

但要清楚,next_date通常不是真正的开始时间,真正的开始时间往往比next_date晚几秒,也就是延时。

1

job的next time是在job开始执行的时候就算好了

不过是在job成功执行之后才写上去

当job的执行时间超过interval时候也就是说在job的执行过程中nexttime就已经过了

那么nexttime就变为job执行完时的时间

2

SQL> exec dbms_ijob.broken(10,true);

PL/SQL过程被成功完成

SQL> select * from user_jobs;

SQL> exec dbms_job.run(21);

PL/SQL过程被成功完成

SQL> select * from user_jobs;

试写一计划任务:

declare

v_job number :=1;

begin

dbms_job.submit(v_job,'sp_fact_charge_code;',sysdate,'sysdate+1/1440');

commit;

end;

/

解释一下上面的程序

程序主体有四个参数,分别意为:v_job是计划任务号,'sp_fact_charge_code'是计划任务名,如果是多个计划任务,就都用分号隔开,第三个sysdate意为立即执行此任务,第四个参数是间隔时间的设置,此处为每分钟执行一次,1/1440=1/24/60。

查看任务:select from user_jobs;select from all_jobs;

查看正在运行的任务(不推荐使用,速度慢):select * from dba_jobs_running;

另外值得一提的是,在安装oracle配置的时候,有这么一个参数:

job_queue_processes=4 (默认4)

这个参数是定义当前最多可同时运行几个job,它的最大值能设置为36。

除了submit参数外,其余的几个参数有:

dbms_job.run(v_job); //运行job

dbms_job.broken(v_job,true,next_date); //停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。

dbms_job.remove(v_job); //删除某个job

dbms_job.what(v_job,'sp_fact_charge_code;'); //修改某个job名

dbms_job.next_date(v_job,sysdate); 修改下一次运行时间

例题,设定每天2:10:10运行

trunc(sysdate)+2/24+10/24/60+10/24/60/60 //运行时间

trunc(sysdate)+1+2/24+10/24/60+10/24/60/60 //间隔运行时间

例题,设定每月2号的2:10:10运行

trunc(sysdate,'mm')+1+2/24+10/24/60+10/24/60/60 //运行时间

trunc(add_mouths(sysdate,1),'mm')+1+2/24+10/24/60+10/24/60/60 //间隔运行时间

例题,设定每个季度……

trunce(sysdate,'Q')+1+2/24+10/24/60+10/24/60/60 //运行时间

trunce(add_mouths(sysdate,3),'Q'))+1+2/24+10/24/60+10/24/60/60 //间隔运行时间

另外年为'Y;

例题,设定每周一……

next_day(sysdate'星期一')

user_jobs视图的next_date信息是Oracle每次运行任务结束后自动修改的,修改的算法就是interval+this_date+this_sec,有时候任务因为某种原因延迟了,这里的next_date就会在上次运行的时间的基础上加一天,从而,偏离了规划的时间,这是我们不希望看到的,可以通过以下命令指定下次运行的时间,但根据上边的算法,这个命令不一定生效:

SQL> exec dbms_job.next_date(22,to_date('2009-09-15 04:00:00','yyyy-mm-dd hh24:mi:ss'));

PL/SQL procedure successfully completed

SQL> commit;

oracle.jobs中failures,Oracle job详解相关推荐

  1. 【12c】Oracle Restart中的SRVCTL命令详解

    SRVCTL,服务控制实用工具(Service Control Utility),可用于对Oracle Restart和Oracle RAC的配置和管理,本篇主要介绍SRVCTL命令在Oracle R ...

  2. 在oracle中使用存储过程,如何在ORACLE中使用JAVA存储过程(详解)

    如何在Oracle中使用Java存储过程 (详解) 一.如何缔造java存储过程? 通常有三种步骤来缔造java存储过程. 1.使用oracle的sql语句来缔造: e.g.使用create or r ...

  3. oracle imp 1403,Oracle中用exp/imp命令参数详解【转】

    Oracle中用exp/imp命令参数详解 [用 exp 数 据 导 出]: 1  将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 expsyste ...

  4. oracle通过dblink连接mysql配置详解(全Windows下)

    oracle通过dblink连接mysql配置详解(全Windows下) 关于oracle通过dblink连接mysql,经过了两周的空闲时间研究学习,终于配置好了,真是不容易啊,仔细想想的话,其实也 ...

  5. oracle加密传输的种子,oracle net manager 数据传输安全步骤详解

    简介 Net Manger可以管理服务命名和监听程序. 所谓监听程序就是一个Oracle服务器上进程,负责监听/响应客户端对Oracle服务的请求.之前我们在安装数据库实例时,同时已经安装了一个监听程 ...

  6. 服务器系统安装oracle数据库,Oracle 11g服务器安装详细步骤图文详解

    Oracle 11g是在推出的最新数据库软件,Oracle 11g有400多项功能,经过了1500多个小时的测试,开发工作量达到了3.6万人/月,相当于1000名员工连续研发3年.Oracle 11g ...

  7. oracle静默安装指定组件,Oracle 11g 静默安装-db_install.rsp详解

    Oracle 11g 静默安装-db_install.rsp详解 前提安装正常的配置流程,配置完服务器后,将db_install.rsp. netca.rsp,dbca.rsp复制到/app/一份,然 ...

  8. oracle spool 分隔符_sqlplus--spool命令参数详解

    sqlplus--SPOOL参数详解 Spool是Oracle快速导出数据的工具,是sqlplus的指令,不是sql语法里的东西 一.Spool常用的设置 set arraysize 5000;  / ...

  9. Oracle之外键(Foreign Key)用法详解(一)

    Oracle外键(Foreign Key)用法详解(一) 1.目标 演示如何在Oracle数据库中使用外键 2.什么是外键? 1)在Oracle数据库中,外键是用来实现参照完整性的方法之一.打个形象的 ...

最新文章

  1. 用“脸”打卡,抬头就能签到!
  2. 实现linux作为server时与windows间的数据同步
  3. 解惑 spring 嵌套事务
  4. 2012年蓝桥杯【初赛试题】 转方阵
  5. 【华为云技术分享】自动网络搜索(NAS)在语义分割上的应用(二)
  6. Android 系统(22)--Android P 行为变更
  7. 腾讯地图api-地图展示map和覆盖物(标记)
  8. 2019 年,Rust 与 WebAssembly 将让 Web 开发更美好
  9. win11系统如何绕过tpm检测进行安装 Windows11绕过tpm安装的解决方法
  10. java之模块学习-JAVA的IO流
  11. C++ 学到什么程度可以找工作?
  12. java linux 文件名乱码_Java读linux文件名乱码的解决办法
  13. Array 常用函数
  14. 33. Pandas计算同比环比指标的3种方法
  15. install Wine + 迅雷 in Fedora 31
  16. c语言一些算法解题技巧,c语言常见小算法的解题思路.doc
  17. Error: Index .kibana belongs to a version of Kibana that cannot be automatically migrated. Reset it
  18. performance性能
  19. Prometheus Operator + blackbox_exporter 监控Web页面
  20. h3c trunk口改access_H3C交换机端口链路类型Trunk 端口配置指导

热门文章

  1. Global Average Pooling对全连接层的可替代性分析
  2. Win32 OpenGL标准例子
  3. ubuntu 进入 recovery mode
  4. 渗透知识-SSRF漏洞
  5. awd的批量脚本 pwn_AWD攻防之web入门篇
  6. python 视频 灰度 伽玛_Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换...
  7. Tomcat开启SSL协议支持
  8. binlog关闭事务记录_Mysql 数据库 InnoDB引擎对binlog_format的限制
  9. 旧电脑怎么升级配置_旧电脑升级哪些配件效果最好?答案莫过于这3点!
  10. java银行柜面发起授权功能_java银行自主柜员程序设计