我创建了一个JOB(每月7号执行一次):
declare
job number;
begin
sys.dbms_job.submit(job,
'wt_asp_fy;',
to_date('2008-05-07 00:00:00', 'yyyy-mm-dd hh24:mi:ss'),
'TRUNC(LAST_DAY(SYSDATE)+7)');
commit;
end;
成功后在JOBS中也显示:
begin
sys.dbms_job.submit(job => :job,
what => 'wt_asp_fy;',
next_date => to_date('07-05-2008', 'dd-mm-yyyy'),
interval => 'TRUNC(LAST_DAY(SYSDATE)+7)');
commit;
end;
/但总是不成功,查看user_jobs表后,显示
WHAT JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
wt_asp_fy; 88 2008-5-7 10:04:00 10:04:00 10 N
问题:我可以在哪查看到底为什么JOB失败了?我的存储过程在手动执行过没有问题,请大家帮忙,十分感谢!
declare
job number;
begin
sys.dbms_job.submit(job,
'wt_asp_fy;',
to_date('2008-05-07 00:00:00', 'yyyy-mm-dd hh24:mi:ss'),
'TRUNC(LAST_DAY(SYSDATE)+7)');
commit;
end;
成功后在JOBS中也显示:
begin
sys.dbms_job.submit(job => :job,
what => 'wt_asp_fy;',
next_date => to_date('07-05-2008', 'dd-mm-yyyy'),
interval => 'TRUNC(LAST_DAY(SYSDATE)+7)');
commit;
end;
/但总是不成功,查看user_jobs表后,显示
WHAT JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
wt_asp_fy; 88 2008-5-7 10:04:00 10:04:00 10 N
问题:我可以在哪查看到底为什么JOB失败了?我的存储过程在手动执行过没有问题,请大家帮忙,十分感谢!
broken没有显示Y
你也可以手动执行下job看看正常否
手动执行JOB是怎么个方法?
1.以DBA的身份去执行如下命令,确保Oracle的工作模式允许启动任务队列管理器:
sql> alter system enable restricted session;
2.配置任务队列管理器的启动参数
打开Oracle的初始化文件中,该文件放在$ORACLE_HOME/dbs路径下,如果Oracle的SID是myora8的话,则
初始化文件就是initmyora8.ora,设置如下:
job_queue_process=10 (SNP进程的启动个数)
job_queue_interval=10 (定义系统每隔多少秒唤醒进程一次)
3..以DBA的身份将执行包dbms_job的权限授予各个用户:
sql>grant execute on dbms_job to 你的用户;