1 首先查看

SQL> show parameter job

NAME
TYPE
VALUE
------------------------------------ -----------
------------------------------
job_queue_processes
integer 10

如果值是 0
需要修改(如果为0则无法运行job,此值为允许同时运行的job数量)

alter system set job_queue_processes
=10; --或者其他值

2 一个简单例子:
  
  创建测试表
  SQL> create table TEST(a
date);
  
  表已创建。
  
  创建一个自定义过程
  SQL> create or replace
procedure MYPROC as
   2 begin
   3 insert into TEST
values(sysdate);
   4 end;
   5 /
  
  过程已创建。
  
  创建JOB
  SQL>
variable job1 number;
  SQL>
  SQL>
begin
   2 dbms_job.submit(:job1,'MYPROC;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次
   3 end;
   4 /
  
  PL/SQL
过程已成功完成。
  
  运行JOB
  SQL>
begin
   2 dbms_job.run(:job1);
   3 end;
   4 /
  
  PL/SQL
过程已成功完成。
  
  SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from
TEST;
  
  时间
  -------------------
  2001/01/07
23:51:21
  2001/01/07 23:52:22
  2001/01/07
23:53:24
  
  删除JOB
  SQL>
begin
   2 dbms_job.remove(:job1);
   3 end;
   4 /
  
  PL/SQL
过程已成功完成。
Sql> print
:n;
系统打印此任务的编号,例如结果为300。
如上,我们创建了一个每隔1分钟执行一次的任务号为300的任务。可以通过Oracle提供的数据字典user_jobs察看该任务的执行情况:
sql>
select job,next_date,next_sec,failures,broken from user_jobs;
执行结果如下:
job
next_date next_sec failures broken
300 2000/10/10 11:45:15 0
N
这表示任务号为300的任务,下一次将在2000/10/10
11:45:15执行,此任务的执行失败记录为0次。注意:当执行job出现错误时,Oracle将其记录在日志里,失败次数每次自动加1。当执行失败次数达到16时,Oracle就将该job标志为broken。此后,Oracle不再继续执行它,直到用户调用过程dbms_job.broken,重新设置为not
broken,或强制调用dbms_job.run来重新执行它。
除了以上我们讨论的submit存储过程之外,Oracle还提供了其他许多存储过程来操作任务。例如:dbms_job.change

dbms_job.what、dbms_job.interval可以用来修改提交的任务。要想删除该任务,只需运行dbms_job.remove(n)即可,其中n为任务号。

3
上面的例子没有涉及到存储过程带参数的问题,如果带参数假设为
MYPROC( ina
IN
VARCHAR2,
------------------以下为必须输出参数组---------------------------------
outa
OUT NUMBER,
outb OUT VARCHAR2)


在建立job的代码中
创建JOB
  begin
sys.dbms_job.submit(job =>
:job,

what =>
'
declare

outa
number;
--定义输出变量
outb
varchar2(40);
begin
MYPROC(''输入'',outa
=>outa ,outb =>outb
);
end;',

next_date => to_date('10-10-2006 08:48:34', 'dd-mm-yyyy
hh24:mi:ss'),

interval => 'sysdate+1');
commit;
end;
/

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1399765

本文来自:新浪博客http://blog.sina.com.cn/s/blog_586f1baf01000bww.html

oracle建立job定期运行存储过程的更多相关文章

  1. Oracle建立全文索引详解

    Oracle建立全文索引详解1.全文检索和普通检索的区别 不使用Oracle text功能,当然也有很多方法可以在Oracle数据库中搜索文本,比如INSTR函数和LIKE操作: SELECT *FR ...

  2. Oracle通过JOB定时执行存储过程实现两表数据比对

    需求: 第三方云平台管理的虚拟机会进行关机.资源扩展等操作,因此开关机状态.CPU.内存.磁盘大小等数据需要进行同步.这里第三方云平台是BMC CLM云平台,底层虚拟化平台是Vcenter.进行同步的 ...

  3. Oracle建立连接的过程分析

    Oracle建立连接的过程 如果我们想登陆数据库并在数据库中真正做事情,就必须先建立连接,首先我会介绍如何建立连接,再介绍建立连接的两种方式的原理,以及建立连接的过程中在客户端和服务端都做了些什么. ...

  4. 为 WSUS 服务器定期运行清理向导

    在 WSUS 的管理界面的 Options 里面,可以找到 Server Cleanup Wizard 然后运行.后来想了一下,为什么不把它弄成定期运行呢! 找了一下,从 Windows Server ...

  5. Oracle建立表空间和用户

    Oracle建立表空间和用户 建立表空间和用户的步骤: 用户 建立:create user 用户名 identified by "密码"; 授权:grant create sess ...

  6. oracle 建立主键与索引【转】

    此文转自:http://blog.sina.com.cn/s/blog_439f80c4010094n1.html 创建主键: alter table T add primary key (V) T是 ...

  7. Oracle自动执行任务(存储过程)

    Oracle自动执行任务(存储过程) SQL> variable job number;SQL> begin2 dbms_job.submit(:job,'存储过程名;',sysdate, ...

  8. 改写了禁用或启用oracle数据库的约束的存储过程

    改写了网上某位大侠(最开始的源头是哪位没记住)写的禁用或启用oracle数据库所有约束的存储过程,增加了异常控制,以使发生异常时也可以执行下去. –调用过程: 执行前先 set serveroutpu ...

  9. oracle定期运行job

    数据库:oracle 11g,操作都在pl/sql客户端完成 第一步.创建一个”E_P_FFM_STATE(fltdt in varchar2)“存储过程 第二步.打开Command Window,创 ...

随机推荐

  1. 二分图——poj2239

    水题 /* n门课,每门课有一个时间t 要求最大的n->t的匹配 */ #include<iostream> #include<cstring> #include< ...

  2. LUOGU P4777 【模板】扩展中国剩余定理(EXCRT)

    传送门 解题思路 扩展 $crt​$,就是中国剩余定理在模数不互质的情况下,首先对于方程 ​     $\begin{cases} x\equiv a_1\mod m_1\\x\equiv a_2\m ...

  3. c语言学习笔记 - 指针和字符串

    前面学习了字符串是一种字符数组,又知道了指针变量和数组的关系,这里来看一下指针和字符串的关系. #include <stdio.h> int main(void){ char str = ...

  4. JS里面function和Function的区别

    js里Function 与 function的不一样的,不仅仅是大小写的问题. 简单点说:大写的Function是一个类 ,而小写的function是一个对象. Function是一个构造器,func ...

  5. java基础温习 -- Thread synchronized关键字

    synchronized 基本规则 1. 当一个线程访问“某对象”的“synchronized方法”或者“synchronized代码块”时,其他线程对“该对象”的该“synchronized方法”或 ...

  6. 爬虫(二)建立代理ip池

    之前我们说网站反爬虫的一个常用方法是检测ip,限制访问频率.所以我们要通过设置代理ip的办法绕过这个限制.有不少提供免费代理ip的网站,像https://www.xicidaili.com/nt/,我 ...

  7. My solutions to the exercises in "The Boost C++ Libraries"

    I like books with excercises, but I also want solutions to see if I got it right. When working throu ...

  8. SW数据库结构列表

    数据表列表 PE_Admin:管理员信息表 PE_Advertisement:广告信息表 PE_AdZone:版位信息表 PE_Announce:公告信息表 PE_AreaCollection:采集信 ...

  9. mvvmlight下passwordBox绑定的解决方法

    在做公司的项目中,用到MVVMLight框架,需要做登陆注册的功能模块,但是在wpf中passwordBox没有内置绑定功能,因为出于安全的考虑.但是,博主又非常想要契合mvvm思想,一定要passw ...

  10. 官网下载eclipse

    百度搜索eclipse,点击官网链接进入官网 进入官网点击Download Packages 根据自己需要选择对应的版本 选择对应的版本进入下图下载页面,然后点击下载即可 下载完成,解压zip包即可使 ...