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

如何设置一个oracle定时任务

发布网友 发布时间:2022-04-19 16:54

我来回答

2个回答

懂视网 时间:2022-05-01 02:04

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-30 23:12

DBMS_JOB.SUBMIT(
job OUT BINARY_INTEGER,
what IN VARCHAR2, NEXT_DATE IN DATE DEFAULTSYSDATE,
interval IN VARCHAR2 DEFAULT 'NULL',
no_parse IN BOOLEAN DEFAULT FALSE,
instance IN BINARY_INTEGER DEFAULT ANY_INSTANCE,
force IN BOOLEAN DEFAULT FALSE);

what 为需要定时调用的 PL/SQL代码
interval 为下次运行作业的时间
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
黑鱼身上有寄生虫吗 寄生虫是否可能存在于鱼的身体里? 取保候审没拘留怎么办 支付宝开通快捷支付后,能在支付宝查银行卡余额吗? 秋天,正是吃板栗的季节,分享7种经典吃法别错过,老少皆宜! CHOW TAI SENG 周大生 P0PC0078 桃花Pt950铂金项链 购买最佳价格 周大生的钻戒PT950 0.27ct I-J VS 7892元贵吗? 周大生铂950项链J1909011916 重量:4.69g 和Pt950吊坠J191000191967 重量... CHOW TAI SENG/周大生 P0PC0078 桃花Pt950铂金项链 45cm 3.63g-详细介... 白金多少钱一克PT950 oracle12c定时任务怎么自动执行 小红书当前状态不可取消订单,什么意思 oracle数据库怎么创建定时任务 oracle 定时每天将查询的结果当作sql来执行 oracle写一个定时执行的sql语句,JOB也行 oracle数据库如何启动时自动执行定时任务job Oracle有关定时任务的问题 高分急求oracle定时任务的问题 Oracle中如何定时执行一条SQL语句 oracle查询每天两个时间点间的数据 oracle数据库用了定时器查询数据库,每一分钟查询... 关于oracle数据库定时任务问题 怎么查看oracle定时文件是否已运行? Oracle job定时任务 oracle 定时任务问题,定时任务没有成功 定时任务... oracle数据库怎么定时任务 如何查看并删除oracle的所有定时任务 怎么查看oracle10g数据库的定时任务 怎样查看自己qq的注册时间 怎么查看qq什么时候注册的 小红书账号存在异常行为或数据,暂不支持升级专业号... oracle定时任务时间怎么写? 小红书在4G状态下不可以看 小红书怎么注册不了 一直提示“常在网上混,总有卡... 为什么我的小红书登陆不了,总是显示版本过低,是... 小红书发不了私信,被永久禁言了该怎么办?怎样才... 小红书可优比不显示 小红书号被判定违规这个账号是不是就废了? 为什么小红书退出后重新登陆一直不行?一直显示薯... 怎样煮羊肉才好吃 怎样炖羊肉才好吃?需要放那些调料? 煮羊肉怎么煮好吃 羊肉怎么炖煮才好吃? 羊肉怎么炖美味 如何炖羊肉好吃? 怎么炖羊肉更加好吃? 怎样清炖羊肉好吃? 炖羊肉怎么炖好啊 羊肉怎么煮好吃 羊肉怎么样炖才好吃