前因:因为之前写DBMS_JOBS定时器,里面包含了好几个存储过程名称,有一个存储一直跑不起来,排查过不是存储的问题,单独拎出来写DBMS_JOBS,手动run也不行,因为这个好像没有日志,所以也看不出来具体的问题。所以就在jobs里面写了一个定时器。
过程:在jobs里面new一下,然后会出现下面的界面
这几个空的意思我是百度的,具体如下:
Name:定时JOB的名字
Enabled:是否开启 打上√表示启用
TYPE:因为我是执行写好的存储过程,所以用STORED_PROCEDURE(有的说一般用PLSQL_BLOCK,这个我没有试过)
Action:程序块代码 explame
declare
p_date date;
i_err_no number;
begin
select trunc(sysdate) into p_date from dual;
pkg_hmall_etl_mgdb.P_MAIN_LIVE(p_date,i_err_no);
end; (这段读不懂,跳过)
Start_date:任务第一次开始时间,一般直接是创建任务的当天。
Start_date:任务结束时间,一般为空,表示不结束。
Frequency:频率,我选择的是daily ,就是每天执行一次
Interval:频率,我这边没有写。如果上一个Frequency使用,这里写30的话,表示每隔30分钟跑一次。
然后下面有很多就空着了,by hour、by minute 、by second 要是不写或者写0的话,表示每天凌晨零点执行定时器
Job Class:一般直接选DEFAULT_JOB_CLASS(我也翻看了其他的jobs,都是选的这个)
结果:
感觉这个最好的就是可以看到日志啊,据说还可以发邮件提醒啥的,看到日志才知道存储跑没跑啊。