oracle定时任务

发布 2022-06-28 16:08:28 阅读 2007

一、在plsql中创建表:

create table

carno varchar2(30),carinfoid number

二、在plsql中创建存储过程:

create or replace procedure pro_test

ascarinfo_id number;

beginselect s_ into carinfo_id

from dual;

insert into test( values(carinfo_id,'123');

commit;

end pro_test;

三、在sql命令窗口中启动任务:

在sql>后执行:

variable jobno number;

begindbms_

pro_test;',sysdate,'sysdate+1/24/12');

commit;

end;提交后提示:

英文**。四、跟踪任务的情况(查看任务队列):

sql> select job,next_date,next_sec,failures,broken from user_jobs;

job next_date next_secfailures broken

1 2008-2-22 ?01:00:000 n

说明有一个任务存在了。

执行select * from test t查看定时任务的结果。可以看出定时任务是正常执行了的。

五、停止已经启动的定时任务:

先执行select job,next_date,next_sec,failures,broken from user_jobs;

以查看定时任务的job号。

在sql>中执行下面的语句停止一个已经启动的定时任务:

begindbms_

commit;

end;表示停止job为1的任务。

执行后显示如下:

pl/sql procedure successfully completed

六、查看进程数:

show parameter job_queue_processes;

必0,否则执行下面的命令修改:

alter system set job_queue_processes=5;

七、再创建一个任务(每5分钟执行一次):

variable jobno number;

begindbms_ 'pro_test;',sysdate,'sysdate+1/24/12');

commit;

end;建立一个定时任务后,在plsql中查看job,它的sql语句类似的是如下:

begin=> jobno,what =>pro_test;',next_date =>to_date('21-02-2008 17:37:26', dd-mm-yyyy hh24:

mi:ss'),interval =>sysdate+1/24/12');

commit;

end;所以,创建一个任务的完整的格式是:

variable jobno number;

begin=> jobno,what =>pro_test;',next_date =>to_date('21-02-2008 17:37:26', dd-mm-yyyy hh24:

mi:ss'),interval =>sysdate+1/24/12');

commit;

end;-系统会自动分配一个任务号jobno。

八、 执行select job,next_date,next_sec,failures,broken from user_jobs;

结果: job next_date next_sec failures broken

1 1 2008-2-22 am 01:00:00 01:00:00 0 n

2 2 2008-2-21 pm 05:42:45 17:42:45 0 n

3 3 2008-2-21 pm 05:42:45 17:42:45 0 n

job的使用:

dbms_号

your_procedure;',要执行的过程

trunc(sysdate)+1/24,//下次执行时间

trunc(sysdate)+1/24+1'//每次间。

隔时间删除job:dbms_

修改要执行的操作:job:dbms_

修改下次执行时间:dbms_

修改间隔时间:dbms_

停止 启动job:dbms_

例子: variable jobno number;

begin

dbms_

procdemo;',procdemo为过程名称

sysdate, 'sysdate + 1/720');

commit;

end修改job_queue_processes的值(保证其不为0否则job不自动运行)

可通过select * from v$parameter;查看其值;

方法1,startup pfile='c:\oracle\ora90\database\';

需要修改文件的job_queue_processes参数,然后重新启动数据库以后才能生效方法2,alter system set job_queue_processes=10

不需要重新启动数据库就能生效,系统自动修改文件。

begin

=> job,

what =>dosomething;',

next_date =>to_date('20-10-2005 01:00:00', dd-mm-yyyy hh24:mi:ss'),

interval =>trunc(sysdate + 1,''micommit;

end;

oracle定时任务

今天总结下oracle的任务队列管理器 job queue 以后也方便查询。我们要做定时任务时,有两种办法。一种是 操作系统的定时,win的定时任务,unix的crontab 一种是 数据库级的定时,她的效率更高,再有大量的表级操作时,建议用数据库本身的job queue,这样方便,效率高 如果用系...

oracle定时任务

dbms job系统包是oracle 任务队列 子系统的api编程接口。dbms job包对于任务队列提供了下面这些功能 提交并且执行一个任务 改变任务的执行参数以及删除或者临时挂起任务等。dbms job包是由oracle home目录下的rdbms admin子目录下的和 这两个脚本文件创建的。...

oracle定时任务

dbms job系统包是oracle 任务队列 子系统的api编程接口。dbms job包对于任务队列提供了下面这些功能 提交并且执行一个任务 改变任务的执行参数以及删除或者临时挂起任务等。dbms job包是由oracle home目录下的rdbms admin子目录下的和 这两个脚本文件创建的。...