问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle 定时任务设置

发布网友 发布时间:2022-04-08 20:46

我来回答

2个回答

懂视网 时间:2022-04-09 01:07

table system.test0916 ( seq NUMBER(2) PRIMARY KEY, seqtime DATE )

 

(2)新建一个存储过程,命名为test_proc,存储过程的语句如下:

CREATE OR REPLACE PROCEDURE test_proc IS
BEGIN
 INSERT INTO SYSTEM.TEST0916(SEQ, SEQTIME) VALUES(NVL((SELECT MAX(SEQ) FROM SYSTEM.TEST0916) + 1, 0), SYSDATE);
 COMMIT;
EXCEPTION
 WHEN OTHERS THEN
 DBMS_OUTPUT.PUT_LINE(‘Exception happened,data was rollback‘);
 ROLLBACK;
END;

 

在SQL Window窗口中执行以上存储过程,执行完成以后,查看Objects下的Procedures菜单,可以看到新建的存储过程如图:

技术分享

TEST_PROC前面的图标没有红色的标记,表示存储过程正常;

(3)检查oracle的JOB运行环境

我这里遇到的只是要检查一下oracle的JOB队列的进程数,如果为0表示不运行JOB,

虽然网上说一般默认为10,但是我安装oracle以后就不知道为什么是0。

查看进程数:

技术分享

修改进程数(如果你的是0,才需要按照以下语句修改):

我这里已经改为10,假如我要改为11来模拟以下这个操作;

在PL/SQL的command窗口中输入以下语句:

alter system set job_queue_processes=10 scope=both;

 

运行截图如下:

技术分享

修改完以后我们这查看一下:

技术分享

看到了吧,我这是是改为11了吧。

补充说明:

网上有的说修改这个进程数可以修改oracle初始文件,最开始我是找到这个初始文件的位置,然后用notepad++打开后去修改,

保存以后我重启oracle服务和电脑,但是发现此时用PL/SQL登陆oracle的时候,一直报无法识别指定的字符串,这里要说明这样操作不行。

这里有个问题,我们要如何找到oracle初始文件的位置?可以在PL/SQL的command window窗口中执行以下语句看到:

技术分享

我当时用notepad++修改的是下图阴影部分的内容:

技术分享

*.job_queue_processes=11

 

4.定制定时执行任务

假设我们要每隔两分钟向表test0916中插入一条记录,这里我们只需要每隔2分钟执行一次存储过程test_proc即可。

在PL/SQL的command window输入以下语句:

var job_num number;
begin
dbms_job.submit(:job_num,‘test_proc;‘,SYSDATE,‘sysdate+2/24/60‘);
end;

 

执行过程的截图如下:

技术分享

执行完成以后记得点击PL/SQL的提交按钮;

 

5.查看执行结果

(1)查看我们新增的JOB是否成功

通过查看DBA_JOBS表中的WHAT字段可以看到最后一条记录即使我们刚新建的定时任务;

技术分享

(2)查看test0916表是否插入了数据

技术分享

 

6.其他相关说明

(1)如何删除一个JOB?

在PL/SQL的command window执行以下语句:

exec dbms_job.remove(81);

说明:这里的数字81是对应DBA_JOBS表中当前要删除的JOB记录所在行的JOB字段的值;

 

(2)submit的各个参数是什么意思?

 

使用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。这个值用来唯一标识一个工作。 前面有一个双引号,在SQL windwo中没有显示,拷贝到command窗口就可以显示出来了;
what参数是将被执行的PL/SQL代码块。这里是存储过程的名称,后面有一个英文状态下的分号不能掉了; 
next_date参数指识何时将运行这个工作。 
interval参数何时这个工作将被重执行。 这里加号、括号都必须在英文状态下输入;
no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE 指示此PL/SQL代码在它第一次执行时应进行语法分析, 而FALSE指示本PL/SQL代码应立即进行语法分析。

 

(3)定时执行的时间间隔是怎么设置的?

这里大家可以去百度,网上搜索一般都能找到满足你需求的,主要是结果TRUNC函数来实现。

 

【转】oracle定制定时执行任务

标签:

热心网友 时间:2022-04-08 22:15

做2个Schelers,一个为每周,一个为每月。追问一个里面有办法实现吗?

追答不能。
因为:每周、每月是互斥的2种周期类型,DBMS只允许你同一时间选择1种。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
橙子冷藏能保存多久 橙子会过期吗 新鲜橙子如何保存更久 橙子保鲜剂对人体有害吗 粒上皇开口熟栗120g*5袋(共600g)-详细介绍 三皇王板栗介绍 品牌榜:2024年板栗十大品牌排行榜 投票结果公布【新】 为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 2014年9月18双色球开奖号码多少? 2010年9月9日双色球开奖结果 请问2014年9月4日福彩双色球开奖号码是什么 2016年9月9日双色球中奖号码是多少? 2018年9月9日双色球开奖号码是多少 2014年9月12日双色球开奖结果是什么? 双色球2014年第9期开奖结果 施工项目管理考核评价指标的定量指标包括哪些内容 双色球2014094期开奖结果什么时候 2014年九月份的双色球开奖号码记录 2014年9月9日双色球开奖号码 洒水车下雨天洒水 这究竟有何意义 为什么下雨天,还有洒水车在工作 即兴评述如何看待下雨天洒水车也洒水事件 为什么下雨天还要用洒水车洒水呢?是在浪费水吗? 为啥城市道路洒水车下雨天还要洒水? 你遇到过洒水车“半夜洒水、雨天洒水”吗? 为什么洒水车要在雨天中作业? 下着大雨,洒水车在洒水,这反映了什么社会现象 平时能看到洒水车洒水,可是下雨天为什么也要洒水?有什么作用? 2014年9月7日双色球开奖号是多少 梦到死人活了,我又把活人杀了,刚要自首醒了 2013年12月2号至2014年09月双色球开奖结果 梦见死人复活,活人去世,如何解? 2014年9月19日晚上双色球开奖直播 中奖号码是多少 2014年9月6号双色球开奖号码为 2016年9月16日双色球开奖结果 自家房屋倒踏,死人活着,活的人死了 9月4号双色球开奖结果 梦见我爸死人复活,活人被活埋? 梦见死人有活了掐住活人的手? 投标保证金要交多少钱? 投标主锁显示是副锁再怎么办 工作不顺怎么化解? 当你在职场中遇到工作不顺利的时候,一般都会怎么办呢? 最近工作很不顺怎么办?要不要辞职? 最近工作不顺利,心情不好怎么办? 工作不顺利的时候怎么缓解好呢 最近工作 不顺利 怎么办 心里好烦 我的工作不顺利怎么办啊?