oracle job不自动执行

如题所述

oracle job不自动执行?Copyright © 1999-2020, CSDN.NET, All Rights Reserved


 登录
ORACLE JOB无法自动执行 原创
2019-06-28 15:57:22
 1点赞

江湖见 

码龄3年

关注
背景:本人项目中有几个调度程序,其中有个job是每月月底最后一天晚上12点过执行,一开始运行的好好的 ,过了几个月业务需求调整,改为每月28号晚上12点过执行,于是我把job的运行时间由原来的TRUNC(ADD_MONTHS(SYSDATE,1),'MM')+1/1440

改为了TRUNC(SYSDATE,'MM')+28+5/1440,验证运行时间写的对不对

select to_char(TRUNC(SYSDATE,'MM')+28+5/1440,'yyyy-MM-dd hh24:mi:ss') from dual;
运行结果为

2019-05-29 00:05:00

看似没问题,然后我就编译 运行一次, job执行完,没有报错,确保存储过程脚本写的没问题,查看下次执行时间也正常,ok下班回家。。。。。

第二天来一看,数据没生成,再去看调度任务,NEXT_DATE时间不对,FAILURES错误次数长达13次, 吓得我赶紧先修改执行时间(必须必当前时间大),手动执行这个job。。。执行完再broken。

期间尝试改过很多运行时间的表达式,但每次到月底都是第一次手动编译运行没问题(排除存储过程语句写的是否问题),其次再等他自动运行 就不行了。网上看过很多解决方案,很多说是权限问题。。。 差点把我带跑偏,如果是权限问题 不可能其他job都能执行成功,于是问题还是出在表达式这。

在一个偶然的机遇下,请教了一位高人,他说这个表达式 貌似不能直接trunc sysdate ,必须要套一层函数 ,可以是last_day,亦或是add_month等。于是我再一次抱着尝试的心态去改改。

我改成了TRUNC(ADD_MONTHS(SYSDATE,0),'MM')+28+5/1440 (每月28号晚12点05分执行job...就是29日凌晨)

先验证下

select to_char(TRUNC(ADD_MONTHS(SYSDATE,0),'MM')+28+5/1440,'yyyy-MM-dd hh24:mi:ss') from dual;
--运行结果是2019-06-29 00:05:00
ok没问题 再编译运行一次,ok也没问题,坐等晚上自动执行,由于是今天才改的,只能等今晚过了才能得知结果,如果成功了 我再回来 更新下。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-10-12
所以这应该是没把这些字都是用所认为这个岁数,要不然他整天社会上操作的。
第2个回答  2020-10-12
不实他不执行的话,你看能不能用能报错呢?如果报错的话,是不可能处于老旧今生。
第3个回答  2020-10-12
Oracle job不能自动执行,这个是正常的现象了,你可以是不能自动执行的。
第4个回答  2020-10-12
这不自动执行,是因为有些你的知识性人民币不够正确

OracleJob不自动运行解决办法
Check if the last_date and next_date for the job are proper:select Job Next_date Last_date from dba_jobs where job=<job_number>;^– NEXT_DATE is porper however LAST_DATE is null since the job never executes automatically ) NEXT_DATE and INTERVAL Check if the Next_date is...

oracle job不自动执行
在一个偶然的机遇下,请教了一位高人,他说这个表达式 貌似不能直接trunc sysdate ,必须要套一层函数 ,可以是last_day,亦或是add_month等。于是我再一次抱着尝试的心态去改改。我改成了TRUNC(ADD_MONTHS(SYSDATE,0),'MM')+28+5\/1440 (每月28号晚12点05分执行job...就是29日凌晨)先验证下 ...

oracle数据库创建的job不自动执行
如果是用plsqldeveloper连接的数据库可以看看job是否已启动,job所执行的语句单独拿出来执行看看是否能够正确执行

Oracle job为什么不能自动执行,手工执行可以
1:把建job的脚本发出来看看2:检查dba_jobs中job的状态3:检查job的频率设置是正确

在oracle中,我声明了一个job,为什么不执行呢?我查询了dba_jobs表,里面...
job执行失败了啊,重试16次后就停止了。检查一下job的内容吧,试着手工执行一下,看看错误在哪里。

Oracle作业job没有自动调度起来
( )也可直接 alter system kill session sid serial# ;上面两个原理都差不多 ( )重建job如job: 的重建 begin sys dbms_job isubmit(job => what => declarevc_out varchar ( );beginSP_SAP_NEWINE_ALL(to_char(SYSDATE yyyymmdd ) to_char(SYSDATE yyyymmdd ));pkg_dic_day_report...

Oracle:如何让jobs自动运行
JOB运行无非就是调用一个系统包的一个过程,然后再用DBMS_JOB.SUBMIT这个过程来控制别的过程定时运行,既然这样的话,是不是可以考虑这样。首先【jobs的运行时间会不同,不能保证jobs会在一天内完成运行.应该如何处理】这个可以用TRUNC命令来设置下一次运行时间吧。其实你说的【放弃的功能】,可以用DBMS_...

oracle job 失败16次后不执行怎么重启
解决办法:1、exec dbms_job.broken(22,false,sysdate+1\/2440);commit;2、SQL> exec dbms_job.run(22,true);commit;

Oracle 11g r2无法运行作业
ORA-27492的话,检查一下 job_queue_processes ,是0的话改成100。权限不够用sys或者system用户。如下:SQL> show parameter job_queue_processes NAME TYPE VALUE --- --- --- job_queue_processes integer 0 SQL> alter system set job_queue_processes=100;System altered 祝早日解...

为什么oracle的job有时候会自己broken
一般是你的存储过程、函数等有问题,如没有考虑到异常并处理异常,导致程序运行中断造成的。(重启数据库有时也会有这样的问题,所以重启后,要检查一遍是否有未编译通过的地方、检查一下job状态,也可以写一个job来定时检查其他job工作状态)

相似回答