各位大侠,请教在ORACLE里面如何建立一个JOB

解决方案 »

  1.   

    犀利.哈哈可以用plsql developer工具,利用里面的图形界面建立.
    另外可以使用dbms_job.submit或者dbms_schedule来建立.
    dbms_schedule我用的很少.给你个dbms_job的例子吧
    1.dbms_job.submit 创建job
    SQL> create or replace procedure resch as
      2  begin
      3  delete from emp where empno = 2;
      4  COMMIT;
      5  delete from emp where empno = 3;
      6  COMMIT;
      7  delete from emp where empno = 4;
      8  COMMIT;
      9  end;
     10  /
     
    Procedure created
     
    SQL> set serveroutput on
    SQL> 
    SQL> DECLARE
      2  v_job NUMBER(20);
      3  BEGIN
      4  dbms_job.submit(v_job,'begin resch; end;',SYSDATE,'SYSDATE+1/24/60');
      5  dbms_output.put_line(v_job);
      6  END;
      7  /
     
    70
     
    PL/SQL procedure successfully completed
    --注:next_date参数决定下次运行时间.下次运行前会调用interval参数计算再下次的运行时间.
    SQL> select * from dba_jobs t where t.JOB=70;
     
           JOB LOG_USER                       PRIV_USER                      SCHEMA_USER                    LAST_DATE   LAST_SEC         THIS_DATE   THIS_SEC         NEXT_DATE   NEXT_SEC         TOTAL_TIME BROKEN INTERVAL                                                                           FAILURES WHAT                                                                             NLS_ENV                                                                          MISC_ENV                                                           INSTANCE
    ---------- ------------------------------ ------------------------------ ------------------------------ ----------- ---------------- ----------- ---------------- ----------- ---------------- ---------- ------ -------------------------------------------------------------------------------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------- ----------
            87 SCOTT                          SCOTT                          SCOTT                                                                                    2010-8-25 1 17:09:25                  0 N      SYSDATE+1/24/60                                                                             begin resch; end;                                                                NLS_LANGUAGE='SIMPLIFIED CHINESE' NLS_TERRITORY='CHINA' NLS_CURRENCY='¥' NLS_ISO 0102000200000000                                                          0
     
    SQL>