oracle建立job定期运行存储过程
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定期运行存储过程的更多相关文章
- Oracle建立全文索引详解
Oracle建立全文索引详解1.全文检索和普通检索的区别 不使用Oracle text功能,当然也有很多方法可以在Oracle数据库中搜索文本,比如INSTR函数和LIKE操作: SELECT *FR ...
- Oracle通过JOB定时执行存储过程实现两表数据比对
需求: 第三方云平台管理的虚拟机会进行关机.资源扩展等操作,因此开关机状态.CPU.内存.磁盘大小等数据需要进行同步.这里第三方云平台是BMC CLM云平台,底层虚拟化平台是Vcenter.进行同步的 ...
- Oracle建立连接的过程分析
Oracle建立连接的过程 如果我们想登陆数据库并在数据库中真正做事情,就必须先建立连接,首先我会介绍如何建立连接,再介绍建立连接的两种方式的原理,以及建立连接的过程中在客户端和服务端都做了些什么. ...
- 为 WSUS 服务器定期运行清理向导
在 WSUS 的管理界面的 Options 里面,可以找到 Server Cleanup Wizard 然后运行.后来想了一下,为什么不把它弄成定期运行呢! 找了一下,从 Windows Server ...
- Oracle建立表空间和用户
Oracle建立表空间和用户 建立表空间和用户的步骤: 用户 建立:create user 用户名 identified by "密码"; 授权:grant create sess ...
- oracle 建立主键与索引【转】
此文转自:http://blog.sina.com.cn/s/blog_439f80c4010094n1.html 创建主键: alter table T add primary key (V) T是 ...
- Oracle自动执行任务(存储过程)
Oracle自动执行任务(存储过程) SQL> variable job number;SQL> begin2 dbms_job.submit(:job,'存储过程名;',sysdate, ...
- 改写了禁用或启用oracle数据库的约束的存储过程
改写了网上某位大侠(最开始的源头是哪位没记住)写的禁用或启用oracle数据库所有约束的存储过程,增加了异常控制,以使发生异常时也可以执行下去. –调用过程: 执行前先 set serveroutpu ...
- oracle定期运行job
数据库:oracle 11g,操作都在pl/sql客户端完成 第一步.创建一个”E_P_FFM_STATE(fltdt in varchar2)“存储过程 第二步.打开Command Window,创 ...
随机推荐
- 报javax.servlet.ServletException: Servlet.init() for servlet [springmvc] threw exception的解决记录
1.异常详情: 2.异常分析: 从异常的详情中看出:companyService未找到,出现这种情况的愿意可能是companyServiceImpl类没有交给IOC容器管理,但是经过我已经在该类上打了 ...
- 移动端,fixed bottom问题
//不显示 .bar { position:fixed; bottom:0; z-index:99; } //显示 .bar{ position:fixed; bottom:calc(90vh); / ...
- 表单控件绑定v-model
<!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...
- NAT后的FTP服务器部署笔记
(2019年2月19日注:这篇文章原先发在自己github那边的博客,时间是2017年2月5日) 寒假开始以后,过年之前有一个任务,为实验室的人搭建一个FTP,用之前部署好的物理服务器.这本就是网管干 ...
- 使用Java代码获取Java进程ID的方法
需要jre/lib下的tools.jar包 public class Test { public static void main(String[] args) throws Exception { ...
- iBatis 代码自动生成工具 iBator 及 Example 使用
iBator的下载和安装 官方下载地址:http://people.apache.org/builds/ibatis/ibator/ 安装:见<Eclipse 插件安装> 安装完成后,“F ...
- elasticsearch 中文API 基于查询的删除(九)
基于查询的删除API 基于查询的删除API允许开发者基于查询删除一个或者多个索引.一个或者多个类型.下面是一个例子. import static org.elasticsearch.index.que ...
- Hbase实验:java创建和删除table
开启zookeeper.hadoop.hbase: 打开eclipse创一个java project,然后导入所需jar包: 写好java代码,运行create,然后去hbase shell里查看: ...
- xshell添加脚本
##### xshell添加脚本```属性连接 - 用户身份验证 - 登陆脚本 - 添加等待:[usmshell]$发送:open 212 //212是指188那台机器的ID再添加一个等待:passw ...
- 在skyline中将井盖、雨水箅子等部件放到地面模型上
公司三维建模组遇到这样的一个问题,怎样将井盖.雨水盖子恰好放在做好的地面模型上.传统的方法是在skyline中逐个调整井盖的对地高度,就是调整为恰好能放在地面上.或者选择很粗糙的一个方法,在“高度”属 ...