我创建了一个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失败了?我的存储过程在手动执行过没有问题,请大家帮忙,十分感谢!

解决方案 »

  1.   

    重起数据库看看,可能是调度JOB 的进程有问题 
    broken没有显示Y
    你也可以手动执行下job看看正常否
      

  2.   

    TO_HEBO2005
    手动执行JOB是怎么个方法?
      

  3.   

    如果手动执行正常的话,可能是调度JOB的进程不正常,一般来说重启下数据库应该能恢复
      

  4.   

    实现步骤:
    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 你的用户;
      

  5.   

    出于对网友们的尊敬把贴给结了,但是我还是不知道我的JOB该怎么办