需要在哪个用户中执行,就用哪个用户登陆,然后建立job
begin
  dbms_job.submit(job => :job,
                      what => 'AUTHORS_SEL;',
                      next_date => to_date('22-05-2006 11:50:59', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1/1440');
  commit;
end;
AUTHORS_SEL是当前用户的存储过程吗?
你也可以这样测试
begin
  dbms_job.run(job => :job);
end;
如果出错会提示错误信息!

解决方案 »

  1.   

    是用的同一个用户,我手动执行job好使的,自动就不执行了
      

  2.   

    看看job_queue_processes是多少,如果是windows系统,还要看看这个用户有没有执行任务的权限
      

  3.   

    你用select * from dba_jobs;看下给出什么结果
      

  4.   

    手动执行但不自动执行的最大可能是JOB_QUEUE_PROCESSES=0
    通过
     select t.value from v$parameter t
     where t.name='job_queue_processes'
    查看
    如果为0则用如下语句修改即可
    alter system set JOB_QUEUE_PROCESSES=10
    还有一个原因就是你手动给nextdate写值了,则job不会自动运行,需要删除该job然后重建.
      

  5.   

    ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 0; 
    过一会
    ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 5; 
    如果还没效果
    估计就是著名的497 days  bug
      

  6.   

    ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 5; 
      

  7.   

    *解决ORACLE不自动运行任务问题*
    修改文件:C:\oracle9i\product\admin\godown\pfile\init.ora
    添加以下行并重启机器:
    ###########################################
    # DF_4B,2006-02-13
    # oracle中使用job定时完成任务
    ###########################################
    JOB_QUEUE_PROCESSES=1
    JOB_QUEUE_INTERVAL=60 
    job_queue_keep_connections=true第一行定义SNP进程的启动个数为n。系统缺省值为0,正常定义范围为0~36,根据任务的多少,可以配置不同的数值。 
    第二行定义系统每隔N秒唤醒该进程一次。系统缺省值为60秒,正常范围为1~3600秒。事实上,该进程执行完当前任务后,就进入睡眠状态,睡眠一段时间后,由系统的总控负责将其唤醒。
      

  8.   

    请教kingofworl(良辰美景虚度) ,497 days bug是什么?还真不知道:(
      

  9.   

    JOB_QUEUE_PROCESSES = 6
      

  10.   

    楼主说的问题我曾遇到过,花了很长时间才找到问题。
    我曾把一个用户下的数据EXP出来,方式EXP SYSTEM/MANAGER OWNER=(XX)
    在另外一台机器上恢复数据后JOB就不能自动执行了。
    原因就在于使用了EXP SYSTEM/MANAGER
    恢复后JOB的OWNER就是SYSTEM了。此时JOB在原用户下无法执行,但是在SYSTEM下可以自动执行。
    无论你怎么在原用户下重建JOB都没有用了。
      

  11.   

    请查看job_queue_process的值,不可以为0
    sql/plus中,show parameter job_queue_process;若为0,改为:
    alter system set job_queue_process=20;