完全按照例子来做的,具体情况如下:
SQL> create table test(a date);
表已创建。
SQL> commit;
提交完成。
SQL> create or replace procedure myproc as
  2  begin
  3  insert into test values(sysdate);
  4  end;
  5  /
过程已创建。
SQL> commit;
提交完成。
SQL> variable job1 number;
SQL> 
SQL> begin
  2  dbms_job.submit(:job1,'myproc;',sysdate,'sysdate+1/288');
  3  end;
  4  /
PL/SQL 过程已成功完成。
SQL> commit;
提交完成。
SQL> begin
  2  dbms_job.run(:job1);
  3  end;
  4  /
PL/SQL 过程已成功完成。
SQL> commit;
提交完成。
SQL> select to_char(a,'yyyy-mm-dd hh24:mi:ss') from test;
TO_CHAR(A,'YYYY-MM-
-------------------
2006-01-06 09:36:41
SQL> select job,next_date,next_sec,total_time,broken,failures from user_jobs;
       JOB NEXT_DATE  NEXT_SEC         TOTAL_TIME B   FAILURES
---------- ---------- ---------------- ---------- - ----------
        61 06-1月 -06 09:41:41                  0 N          0
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2006-01-06 09:43:48
SQL>  select to_char(a,'yyyy-mm-dd hh24:mi:ss') from test;
TO_CHAR(A,'YYYY-MM-
-------------------
2006-01-06 09:36:41
SQL> select job,next_date,next_sec,total_time,broken,failures from user_jobs;
       JOB NEXT_DATE  NEXT_SEC         TOTAL_TIME B   FAILURES
---------- ---------- ---------------- ---------- - ----------
        61 06-1月 -06 09:41:41                  0 N          0
请高手指点,谢谢!

解决方案 »

  1.   

    你的存储过程里没有commitSQL> create or replace procedure myproc as
      2  begin
      3  insert into test values(sysdate);
      -- 此处少了commit;
      4  end;
      5  /还有你的INITXXX.ORA参数里关于JOB的两个参数:
    SQL> show parameters jobNAME                                 TYPE    VALUE
    ------------------------------------ ------- ------------------------------
    job_queue_interval                   integer 60
    job_queue_processes                  integer 0  -- 此处有没有修改?
      

  2.   

    你为什么在create table 等DML后面要加commit ?
      

  3.   

    你为什么在create table 等DDL后面要加commit ?