推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 每日一Python > 数据库存储过程job设置

数据库存储过程job设置

每日一Python 2018-10-29

存储过程Procedure是一组为了完成特定功能的SQL语句集合,可以定时每天没个一段时间执行一次;

可以由下面的基本语句进行创建;

create or repalce procedure precedurename
is 
begin
  sql 语句;
end procedurename;

创建完存储过程后在数据库命令窗口执行exec procedurename,就可以执行存储过程了;

若是想要设置存储过程定时运行,可以利用dbms_job.submit添加到执行队列中

declare
job_name number;
begin 
  sys.dbms_job.submit(job_name,'procedurename;',执行时间,'下次执行时间'
end;
--'procedurename;'中的;不能少

然后可以从user_jobs表中看一下在执行的存储过程都有哪些,下图就是该数据库账号下正在运行的job,“what”列中对应添加的存储过程名字,job列为该存储过程独有的ID,"broken"列正常为"N",若为"Y"则表示中断,以后不会执行,若想继续执行,在确定存储过程无误后,可以利用下面的dbms_job.run()语句重新调用执行:

如果还不到该存储过程的执行时间但是想让其立刻执行,可以利用dbms_job.run语句来实现

begin
sys.dbms_job.run(jobid);--对应上图中的job列中ID
end;

如果想暂停某个正在运行的job。可以用dbms_job.broken(jobid,True)来暂停,后续想要重启时可以利用dbms_job.run()正常调用:


begin 
  sys.dbms_job.broken(jobid,True)
end;

若要删除某个存储过程的job,可以用dbms_job.remove来移除,后续想要重启时,需要用dbms_job.submit()重新添加job:

begin
sys.dbms_job.remove(jobid);
end;

若是要是某些存储过程有关联且有先后执行顺序,可以新建一个存储过程来统一调用;



版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《数据库存储过程job设置》的版权归原作者「每日一Python」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注每日一Python微信公众号

每日一Python微信公众号:gh_5c39bed35196

每日一Python

手机扫描上方二维码即可关注每日一Python微信公众号

每日一Python最新文章

精品公众号随机推荐