永发信息网

怎样实现每天自动执行oracle的存储过程一次

答案:1  悬赏:0  手机版
解决时间 2021-03-06 11:33
怎样实现每天自动执行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)''
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
果爱鲜果甜品·奶茶这个地址在什么地方,我要
表达自卑的语句
什么叫飞铅钓法?
合肥有木有比较好的远程网络教育教育机构,想
新化县娄底博纳燃气在哪里啊,我有事要去这里
泸公王酒业地址在什么地方,想过去办事
WPS文字里怎么连线
我的手机更新了,苹果6Splus怎么耗电快,是什
郑州哪里可以买冰块
手机邮箱不显示QQ邮件怎么回事啊啊
潜映画电影工作室怎么去啊,有知道地址的么
公企鹅会下蛋吗?
最近工作一直不是太顺利,有朋友推荐我去无根
对虾如何清洗才干净?
红枣,甘草片,连子心,冰糖,山楂,枸杞可以
推荐资讯
家长对百天的高考生的鼓励如何说
动漫抱枕什么面料比较好啊
李兴营村我想知道这个在什么地方
老传滋味农屋共康店地址有知道的么?有点事想
罗马尼亚以什麼著名 比如说英国以城堡 漂亮的
快乐十分十八个号码任三得多少快乐十分十八个
求一网王小说,男主幸村,女主好像是穿过去的
发动机废弃管冒白烟什么原因
梦幻挖宝能挖出什么
谁知道2016年1月17号双色球开奖直播中的那个
2sin(2x+a+兀/3)由于它是奇函数,为什么a
0.85,11/16,0.805,7/8按从大到小排起
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?