资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

oracle定时器怎么开,oracle定时器每天九点执行

oracle12c定时任务怎么自动执行

1.引言

创新互联主要从事成都网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务洛江,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

定制定时执行的任务有两种形式,系统级别和数据库级别,

从操作系统级别来讲,

windows系统我们可以使用任务计划来实现,

对于winXP系统,设置步骤如下,开始---设置---控制面板---任务计划,然后添加任务计划,按向导完成配置即可;

对于win7系统,设置步骤如下,点击开始,然后在 搜索程序和文件 框中输入 [任务计划],然后点击出来的任务计划程序,创建一个基本任务即可;

linux系统我们可以使用crontab命令来是实现,

关于crontab命令的使用可以见之前的博客

从数据库级别来讲,我们可以采用数据库的job来实现;

本节主要介绍通过oracle数据库的job来定制一个简单的定时执行任务。本节会采用oracle定制一个定时向一个表中插入语句。

这里聊一下我做这个oracle定时任务的缘由:

项目中要在固定的时间,把一个数据库中某些表的数据同步到另外一个数据库,显然这些工作我不能每次都自己去做,

那么,我要怎么来做呢?这个时候oracle的定时执行任务JOB无疑是我的最佳选择。我把同步的脚本放在一个存储过程中,

然后在固定的时间去执行这个存储过程就OK了。

注意:以下所有的操作都是在sytem用户下执行。采用PL/SQL做的客户端登陆。

oracle自动定期执行存储过程

用job

oracle定时器调用存储过程

1.创建一个表,为了能清楚看到定时器的运行情况我们创建一个带有日期字段的表

Sql代码

create table job_table(run_time date);

create table job_table(run_time date);

2.创建存储过程

Sql代码

create or replace procedure job_proc is

begin

insert into job_table (run_time) values (sysdate);

end;

create or replace procedure job_proc is

begin

insert into job_table (run_time) values (sysdate);

end;

3.创建job,并且指定为一分钟执行一次

Sql代码

declare

job number;

begin

dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');

end/

commit;

declare

job number;

begin

dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');

end/

commit;

4.创建之后自动处于运行状态,我们查询job表,看看我们创建的job

Sql代码

select job,broken,what,interval,t.* from user_jobs t;

select job,broken,what,interval,t.* from user_jobs t;

job broken what interval ...

81 N job_proc; TRUNC(sysdate,'mi') + 1 / (24*60) ...

参数介绍

job job的唯一标识,自动生成的

broken 是否处于运行状态,N;运行;Y:停止

what 存储过程名称

interval 定义的执行时间

补充:

描述 INTERVAL参数值

每天午夜12点 ''TRUNC(SYSDATE + 1)''

每天早上8点30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)''

每星期二中午12点 ''NEXT_DAY(TRUNC(SYSDATE ), ''''TUESDAY'''' ) + 12/24''

每个月第一天的午夜12点 ''TRUNC(LAST_DAY(SYSDATE ) + 1)''

每个季度最后一天的晚上11点 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q'' ) -1/24''

每星期六和日早上6点10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE, ''''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)''

怎么在oracle中做定时器呢?

创建scheduler,PL/SQL Developer里可以直接创建,也可以写SQL创建,类似以下语法:

begin

sys.dbms_scheduler.create_schedule(schedule_name = 'FRQ_CATALOG.TT',

start_date = to_date('18-10-2011 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),

repeat_interval = 'Freq=Daily;Interval=0',

end_date = to_date('31-10-2011 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),

comments = '');

end;

如果懂了希望点一下采纳

如何使用plsql工具创建oracle数据库的定时器

通过plsql查看tables、views等文件夹,找到定时器对应的DBMS_Jobs文件夹。

在文件夹或者在已有的定时器上右键 new... 创建一个新的job(定时器)

输入红色选中的必输参数。What里面是一些存储过程,可以是一个或者多个。多个之间用分好;隔开,可以数据一下注释说明,格式“/*存过说明*/。点击应用即可保存。点击View SQL可以查看job对应的sql脚本。

如果想查看一些脚本,处理通过打开文件夹的方式,也可以使用更方便的sql语句进行查看。

SELECT * FROM dba_jobs;

注意,如果next_date是4000-1-1表示这个脚本已经是停止状态。

如果想查询某个存储过程对应的哪个job可以通过dba_jobs表中what字段根据条件查询查看job.

dba_jobs中的job字段对应的值就和DBMS_Jobs中对应的数字是一致的,可以对信息进行修改更新。


当前文章:oracle定时器怎么开,oracle定时器每天九点执行
分享URL:http://cdkjz.cn/article/hoohih.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220