怎样在数据库中实现每分钟调用一次存储过程sp_getTask?求详细解答

解决方案 »

  1.   

    job:
    DECLARE
      X NUMBER;
    BEGIN
      SYS.DBMS_JOB.SUBMIT
        ( job       => X 
         ,what      => 'sp_name;'
         ,next_date => to_date('31/03/2007 23:50:00','dd/mm/yyyy hh24:mi:ss')
         ,interval  => '時間間隔'
         ,no_parse  => TRUE
        );
      SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
    END;
    /
      

  2.   

    一个简单例子: 
      
      创建测试表
      SQL> create table TEST(a date);
      
      表已创建。
      
      创建一个自定义过程
      SQL> create or replace procedure MYPROC as
       2 begin
       3 insert into TEST values(sysdate);
       4 end;
       5 /
      
      过程已创建。
      
      创建JOB
      SQL> variable job1 number;
      SQL> 
      SQL> begin
       2 dbms_job.submit(:job1,'MYPROC;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次
       3 end;
       4 /
      
      PL/SQL 过程已成功完成。
      
      运行JOB
      SQL> begin
       2 dbms_job.run(:job1);
       3 end;
       4 /
      
      PL/SQL 过程已成功完成。
      
      SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from TEST;
      
      时间
      -------------------
      2001/01/07 23:51:21
      2001/01/07 23:52:22
      2001/01/07 23:53:24
      
      删除JOB
      SQL> begin
       2 dbms_job.remove(:job1);
       3 end;
       4 /
      
      PL/SQL 过程已成功完成。
      

  3.   

    使用JOB作业,注意需要设置job_queue_processes参数大小。
      

  4.   

    skystar99047(天星) ( ) 信誉:105    Blog  2007-4-2 9:30:50  得分: 0  
     
     
       
    使用JOB作业,注意需要设置job_queue_processes参数大小。  
     
    JOB_QUEUE_PROCESSES的大小一般来说多少是比较合适的?
    我一般都设为10,但公司设的是5
      

  5.   

    job_queue_processes参数不能为零,否则无法运行job