通过plsql写定时器(jobs)

本文分享了一次解决Oracle数据库中DBMS_JOBS定时任务问题的经验,详细介绍了如何通过设置定时器参数,如NAME、Enabled、TYPE、Action、Start_date、Frequency等,来运行存储过程,并探讨了日志查看及邮件提醒功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前因:因为之前写DBMS_JOBS定时器,里面包含了好几个存储过程名称,有一个存储一直跑不起来,排查过不是存储的问题,单独拎出来写DBMS_JOBS,手动run也不行,因为这个好像没有日志,所以也看不出来具体的问题。所以就在jobs里面写了一个定时器。

过程:在jobs里面new一下,然后会出现下面的界面

这几个空的意思我是百度的,具体如下:

Name:定时JOB的名字

Enabled:是否开启 打上√表示启用

TYPE:因为我是执行写好的存储过程,所以用STORED_PROCEDURE(有的说一般用PLSQL_BLOCK,这个我没有试过)

• PLSQL_BLOCK:匿名PL/SQL 块
• STORED_PROCEDURE:命名的PL/SQL、Java 或外部过程
• EXECUTABLE:可以从操作系统(OS) 命令行执行的命令

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,都是选的这个)

结果:

感觉这个最好的就是可以看到日志啊,据说还可以发邮件提醒啥的,看到日志才知道存储跑没跑啊。

 

转载于:https://www.cnblogs.com/qni0513/p/9487742.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值