将下面的存储过程名称换成实际的存储过程名称,就可以实现您要的功能的,
现为你写的,直接在pl/sql dev里面执行就行了,有啥问题再联系我。
上面一段是删除job,后面的是建立job,我写了判断语句,可以随意执行
参考oracle的 dbms_job包。
---------------------华丽丽的分割线----------------------------
DECLARE
i_count number
job_num number
BEGIN
select count(job) into i_count from user_jobs where upper(what)='存储过程名称'
if i_count>0 then
select job into job_num from user_jobs where upper(what)='存储过程名称'
dbms_job.remove(job_num)
end if
END
/
commit
DECLARE X NUMBER
BEGIN
DBMS_JOB.SUBMIT
( job => X
,what => '存储过程名称'
,next_date => to_date(to_char(sysdate+1,'yyyy-mm-dd')||' 01:00:00','yyyy-mm-dd hh24:mi:ss')
,interval => 'SYSDATE+1'
,no_parse => TRUE
)
END
/
commit
Job类似Unix中的crontab,有定时执行的功能,可以在指定的时间点或每天的某个时间点等自行执行任务。在各类系统使用运行过程中,经常会遇到需要定时完成的任务,比如定时更新数据,定时统计数据生成报表等等,这些工作都可以使用Job来完成。在openGauss 2.1.0中,提供了以下接口来实现管理Job。
1 接口描述
2 接口定义和使用示例
PKG_SERVICE.JOB_CANCEL
存储过程CANCEL删除指定的定时任务。
PKG_SERVICE.JOB_CANCEL函数原型为:
PKG_SERVICE.JOB_CANCEL( job IN INTEGER)
示例:
存储过程FINISH禁用或者启用定时任务。
PKG_SERVICE.JOB_FINISH函数原型为:
存储过程JOB_SUBMIT提交一个系统提供的定时任务。
PKG_SERVICE.JOB_SUBMIT函数原型为:
PKG_SERVICE.JOB_SUBMIT( id IN BIGINT DEFAULT, content IN TEXT, next_date IN TIMESTAMP DEFAULT sysdate, interval_time IN TEXT DEFAULT ‘null’, job OUT INTEGER)
当创建一个定时任务(JOB)时,系统默认将当前数据库和用户名与当前创建的定时任务绑定起来。该接口函数可以通过call或select调用,如果通过select调用,可以不填写出参。如果在存储过程中,则需要通过perform调用该接口函数。如果提交的sql语句任务使用到非public的schema,应该指定表或者函数的schema,或者在sql语句前添加set current_schema = xxx语句。
示例:
PKG_SERVICE.JOB_UPDATE
存储过程UPDATE修改定时任务的属性,包括任务内容、下次执行时间、执行间隔。
PKG_SERVICE.JOB_UPDATE函数原型为:
PKG_SERVICE.JOB_UPDATE( id IN BIGINT, next_time IN TIMESTAMP, interval_time IN TEXT, content IN TEXT)
示例:
存储过程SUBMIT_ON_NODES创建一个所有CN/DN上的定时任务,仅sysadmin有此权限。
PKG_SERVICE.SUBMIT_ON_NODES函数原型为:
示例:
PKG_SERVICE.ISUBMIT_ON_NODES
ISUBMIT_ON_NODES与SUBMIT_ON_NODES语法功能相同,但其第一个参数是入参,即指定的作业号,SUBMIT最后一个参数是出参,表示系统自动生成的作业号。仅sysadmin有此权限。
3 JOB的使用示例
检查Job运行结果
修改为2分钟执行一次
检查修改情况和运行结果
禁用和启用任务
禁用和启用都是同样的函数pkg_service.job_finish,传入不同的参数表示是禁用还是启用。
可以看到如果重新启用任务的时候,没有指定下次运行时间,那么下次运行时间会始终保持在4000年,意味着仍然不会启动,所以如果禁用任务之后再重新启动,需要手动显式指定下次运行时间。
墨天轮原文链接:https://www.modb.pro/db/137362?sjhy(复制到浏览器或者点击“阅读原文”立即查看)
关于作者
刘旭,2005开始接触数据库,2014年加入云和恩墨,从事过Oracle数据库优化、SQL审核和产品开发。现阶段主要参与MogDB数据库的测试和文档编写等相关工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)