SQL> VARIABLE jobno number;
SQL> begin
  2  
  3   DBMS_JOB.SUBMIT(:jobno,'Procdemo;',SYSDATE, 'trunc(SYSDATE + 30/(60*24*60))');
  4    commit;
  5  end;
  6  /
begin
*
ERROR 位于第 1 行:
ORA-23420: 间隔必须以将来的一个时间作评估
ORA-06512: 在"SYS.DBMS_JOB", line 57
ORA-06512: 在"SYS.DBMS_JOB", line 134
ORA-06512: 在line 3

解决方案 »

  1.   

    'trunc(SYSDATE  +  30/(60*24*60))'
    改成
    'SYSDATE+30/(60*24*60)'
      

  2.   

    VARIABLE jobno number;
    begin DBMS_JOB.SUBMIT(:jobno,'dele_test;',SYSDATE, 'SYSDATE+30/(60*24*60)');
      commit;
    end;
    /显示:PL/SQL 过程已成功完成
    改完了,但是我不知道这个的意思?那些部分是固定的,那些是我需要写的,这个写完在那里看到这个存储过程。我如何知道它确实在执行?
      

  3.   


    print jobno;
    查看当前创建的job号
    或者通过all_jobs来查看job的情况。DBMS_JOB.SUBMIT(:jobno,//job号
                    'your_procedure;',//要执行的过程 
                    trunc(sysdate)+1/24,//下次执行时间
                    'trunc(sysdate)+1/24+1'//每次间隔时间
                   );这个说的已经很清楚了
    主要是执行什么操作,每次间隔的时间。
      

  4.   

    啊,那我就没做对,print jobno;显示如下:
    SQL> print jobno;     JOBNO
    ----------
            41DBMS_JOB.SUBMIT(:jobno,//job号  我是不是把这里的 :jobno 用 41 代替?
      

  5.   

    不是
    你做得没有错误!
    print jobno是输出刚刚提交的job号!