[Q]怎么样在ORACLE中定时运行存储过程 
[A]可以利用dbms_job包来定时运行作业,如执行存储过程,一个简单的例子,提交一个作业: 
VARIABLE jobno number; 
BEGIN 
    DBMS_JOB.SUBMIT(:jobno, 'ur_procedure;',SYSDATE,'SYSDATE + 1'); 
    commit; 
END; 
之后,就可以用以下语句查询已经提交的作业 
select * from user_jobs; ===============
我都是用plsql developer 或者 toad 直接创建的.... 现在没有数据库,搞不到脚本,在google上搜,应该有无数的.

解决方案 »

  1.   

    大哥,你不是从网上那DOWN下来的吧。晕死
      

  2.   

    DECLARE
      X NUMBER;
    BEGIN
      SYS.DBMS_JOB.SUBMIT
        ( job       => X 
         ,what      => 'scott.XXX;'
         ,next_date => to_date('02-06-2006 08:15:00','dd/mm/yyyy hh24:mi:ss')
         ,interval  => 'TRUNC(LAST_DAY(SYSDATE)) + 02 + 8/24 + 15/1440'
         ,no_parse  => TRUE
        );
      SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
    END;
    /commit;
      

  3.   

    VARIABLE jobno number; 
    BEGIN 
        DBMS_JOB.SUBMIT(jobno, '要执行的过程',to_date('2006-06-02 8:30:00','yyyy-mm-dd hh24:mi:ss'),'TRUNC(LAST_DAY(SYSDATE)) + 2 + 8/24 + 30/(24*60)'); 
        commit; 
    END;