用DBMS_JOB来实现,不能用触发器,参考:
http://www.oradb.net/pack/pack_001.htm

解决方案 »

  1.   

    declare
    jobno number;
    begin
    dbms_job.submit(jobno,'sp_sum;',sysdate,'trunc(sysdate,''mm'')+to_number(to_char(sysdate,''dd''))');
    commit;
    end;
    /
      

  2.   

    谢谢两位,有两点我不明白:
       一是trunc是干什么的?
       二是如果我开始执行的日期不是当前日期,比如是2003-09-01 08:30:00,然后每个月的一号的上午08:30:00执行存储过程,应该怎么写,谢谢
      

  3.   

    trunc是截掉小数部分,取整数可以这样写:
    declare
    jobno number;
    begin
    dbms_job.submit(jobno,'sp_sum;', 'to_date(''2003-09-01 08:30:00'', ''yyyy-mm-dd hh24:mi:ss''), 'trunc(sysdate,''mm'')');
    commit;
    end;
    /
      

  4.   

    declare
    jobno number;
    begin
    dbms_job.submit(jobno,'sp_sum;',sysdate,'last_day(sysdate)+32/24');
    commit;
    end;
    /