创建JOBS的SQL语句为:
begin
  sys.dbms_job.submit(job => :job,
                      what => 'student_bak_proc;',
                      next_date => to_date('10-04-2009 09:21:48', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1/288');
  commit;
end;
/创建存储过程的SQL为:
create or replace PROCEDURE student_bak_proc  as
     begin
     insert into student_bak (SELECT * FROM student ) ;
     END;
我的目的是过一段五分钟就执行一次把student表中的数据插入到student_bak表中!
可是执行了,在student_bak表中没有数据啊?

解决方案 »

  1.   

    在这句insert into student_bak (SELECT * FROM student )后加吗?如果这样的话不行,我加了直接存储过程就出错了!
      

  2.   

    你单独执行存储过程,然后commit
    查询看看有数据吗
      

  3.   

    create or replace PROCEDURE student_bak_proc  as 
        begin 
        insert into student_bak (SELECT * FROM student ) ; 
        commit;
        END; 
      

  4.   


    在PL/SQL里编辑完成后直接点击“应用”就执行了吧?!还是需要再怎么弄让这JOB执行啊?
      

  5.   

    这个不是很清楚,你把commit写过程里面事实,像5楼那样。把创建job里面的哪个commit去掉
      

  6.   

    太奇怪了,我的感觉就是你这job没有执行,但是我不知道为什么
      

  7.   

    过程里在insert后写上commit;发完job以后,在user_jobs或dba_jobs里看一下有没有你刚发的那条job记录,如果有的话,肯定可以塞入值的
      

  8.   

    create or replace procedure student_bak_proc as
      begin
          insert into student_bak select * from student;
      end;
      /==============================================================================
    begin
        sys.dbms_job.submit(job => :job,
                            what => 'student_bak_proc;',
                            next_date => trunc(sysdate)+(5*60)/3600/24,
                            interval => 'trunc(sysdate)+(5*60)/3600/24');
    commit;
    end;
    /
    试试这个