我执行计划任务是以system身份执行的.
sp_tjh过程属于system,而且也有执行dbms_job包的权限.SQL> show parameter job_queue_processes;NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes                  integer     10
这是我的存储过程:
create or replace procedure sp_tjh is
begin
  insert into t_tjh
  (c_id,c_name)
  values
  (to_char(sysdate),to_char(sysdate));
  commit;
end sp_tjh;
测试成功.
向服务器提交任务计划:
SQL> variable n number;
SQL> begin
  2  dbms_job.submit(:n, 'sp_tjh;',trunc(sysdate),'trunc(sysdate)+15/24');
  3  commit;
  4  end;
  5  /PL/SQL procedure successfully completed
n
---------
89查看任务队列:
SQL> select job,next_date,next_sec,failures,broken from user_jobs;       JOB NEXT_DATE   NEXT_SEC           FAILURES BROKEN
---------- ----------- ---------------- ---------- ------
        89 2006-10-11  15:00:00                  0 N手工提前执行:
SQL> begin
  2  DBMS_JOB.RUN(89);
  3  end;
  4  /PL/SQL procedure successfully completed
而且检查表t_tjh中已经新插入一行.手工提前执行就成功的,可是等到计划时间时却不能够执行,请问这是那个地方的设置不正确? 

解决方案 »

  1.   

    SQL> variable n number;
    SQL> begin
         dbms_job.submit(:n, 'sp_tjh;', sysdate,'trunc(sysdate+1)+15/24');
         end;
         /
    SQL> begin
         dbms_job.run(:n);
         end;
         /
      

  2.   

    你用PL/SQL可以在JOB里面看到下一次运行的时间.还可以修改.
    PL/SQL是一个强大的东东.
      

  3.   

    可以用图形界面操作看看
    pl/sql是个好东东,
    不外呼两个原因:
    1、job_queue_processes值没有设置
    2、job启动时间有误
    楼主查看下,是不是启动时间设置出了问题,还是根本就没有设
      

  4.   

    以system身份pl/sql执行结果:select job,next_date,next_sec,failures,broken from user_jobs;
    job     next_date,    next_sec,                       failures, broken
    1 89 2006-10-12 15:00:00 15:00:00 0 N
    2 90 2006-10-12 15:30:00 15:30:00 0 N请各位兄弟判断为什么到时不能够自动执行的原因!!!
      

  5.   

    主要还是job参数设置的问题吧SQL> show parameter job_queue_processes;NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    job_queue_processes                  integer     10可以把这个值再设置高一点
      

  6.   

    SQL> show parameter job_queue_processes;NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    job_queue_processes                  integer     10楼主肯定少于10个job吗?
      

  7.   

    各位高手我与楼主有类似的问题我的job有一个!用SQLPLUS改的参数,一重启参数就又变0 了~!不知道怎么才能修好!
      

  8.   

    oracle的job_queue_processes最多只能36个。alter system set job_queue_processes=36;
      

  9.   

    To butterfly1103:
      $/HOME/oracle/admin/数据库名/pfile/init.ora找到
    ##########
    #进程
    #########
    processes = ***后面加入
    job_queue_processes = 20
    ################
    就OK了.
    SQL> show parameter processes;可以查看设置情况.
      

  10.   

    wyjam(漂泊一生) 
    谢谢你的帮忙!我这就试试!