Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks
          1、創(chuàng)建Job
          ?

          variable jobno number ;

          begin

          ? sys.dbms_job.submit(job => :jobno,

          ?? ???????????????????what => 'your_procedure1;

          ?????????????????????????????? your_procedure2;' ,

          ????????????????????? next_date => to_date( '20080918 18:50:00' , 'yyyymmdd hh24:mi:ss' ),

          ????????????????????? interval => 'sysdate+1/24' );

          ? commit ;

          end ;

          /

          ?

          ?

          2、刪除Job

          ?

          print jobno;

          ?

          begin

          ? dbms_job.remove(:jobno);

          ? commit ;

          end ;

          /

          ?

          ?

          3、其他操作:

          ?

          修改要執(zhí)行的操作:dbms_job.what(jobno,what);

          修改下次執(zhí)行時間:dbms_job.next_date(job,next_date);

          修改間隔時間:dbms_job.interval(job,interval);

          停止job:dbms.broken(job,broken,nextdate);

          啟動job:dbms_job.run(jobno);

          ?

          修改job_queue_processes的值:

          可通過select * from v$parameter;查看其值;

          或者直接用show parameter job_queue_processes;查看如下:

          ?

          NAME TYPE VALUE
          --------------- ----------- ------------
          job_queue_processes integer 10

          ?

          方法1.startup pfile='C: oracleora90databaseinitorcl.ora';

          //這個方法用來修改initorcl.ora文件的job_queue_processes參數,然后重新啟動數據庫


          方法2.alter system set job_queue_processes=10

          //這個方法不用重啟數據庫就可以生效,系統(tǒng)自動修改init.ora文件以后即可生效 。

          ?

          注意:保證參數不為0,否則JOB不自動運行

          ?

          ?

          4、時間間隔偏移的問題:

          ?

          SQL> create table t10 (a int ,b date);
          ?
          Table created

          SQL> create or replace procedure k
          ? 2? as
          ? 3??? i int := 0;
          ? 4? begin
          ? 5??? insert into t10 values(i,sysdate);
          ? 6??? commit;
          ? 7? end;
          ? 8? /
          ?
          Procedure created

          SQL> begin
          ? 2??? sys.dbms_job.submit(job => :jobno,
          ? 3??????????????????????? what => 'k;',
          ? 4??????????????????????? next_date => to_date(sysdate),
          ? 5??????????????????????? interval => 'sysdate+1/1440');
          ? 6??? commit;
          ? 7? end;
          ? 8? /
          ?
          PL/SQL procedure successfully completed
          jobno
          ---------
          47

          ?

          SQL> column B format a30
          SQL> column?A format a5
          SQL> select * from t10;
          ?
          ??? A B
          ----- ------------------------------
          ??? 0 2008-9-18 17:07:38
          ??? 0 2008-9-18 17:08:39
          ??? 0 2008-9-18 17:09:40
          ??? 0 2008-9-18 17:10:41

          ?

          發(fā)現雖然設置了每分鐘執(zhí)行一次,但是每次執(zhí)行時間是在向后偏移

          所以需要進行調整,將job建為如下:

          ?

          SQL> begin
          ??2??? dbms_job.remove(:jobno);
          ??3??? commit;
          ??4? end;
          ??5? /
          ?
          PL/SQL procedure successfully completed
          jobno
          ---------
          47

          ?

          SQL> begin
          ? 2??? sys.dbms_job.submit(job => :jobno,
          ? 3??????????????????????? what => 'k;',
          ? 4??????????????????????? next_date => to_date(sysdate),
          ? 5??????????????????????? interval => 'trunc(sysdate,''mi'')+1/1440');
          ? 6??? commit;
          ? 7? end;
          ? 8? /
          ?
          PL/SQL procedure successfully completed
          jobno
          ---------
          48

          ?

          SQL> truncate table t10;
          ?
          Table truncated

          ?

          SQL> select * from t10;
          ?
          ??? A B
          ----- ------------------------------
          ??? 0 2008-9-18 17:19:02
          ??? 0 2008-9-18 17:20:03
          ??? 0 2008-9-18 17:21:04
          ??? 0 2008-9-18 17:22:01
          ??? 0 2008-9-18 17:23:02

          ?

          雖然秒數還是有稍微的不同,這是由于每次job的運行時間所致

          但是不會像之前一樣一直往后偏移。





          -The End-

          posted on 2008-09-18 17:26 decode360-3 閱讀(160) 評論(0)  編輯  收藏 所屬分類: Oracle
          主站蜘蛛池模板: 营口市| 枣阳市| 丹东市| 溧水县| 科技| 佛冈县| 赣榆县| 栾城县| 哈密市| 兴化市| 台安县| 乌拉特后旗| 丹江口市| 青州市| 宁国市| 西峡县| 招远市| 淮安市| 上杭县| 丹阳市| 阿拉尔市| 乌海市| 苗栗县| 惠来县| 榆树市| 敦煌市| 安庆市| 本溪市| 扶沟县| 秀山| 蓝田县| 旌德县| 新蔡县| 怀集县| 宝鸡市| 双柏县| 莫力| 江川县| 镇坪县| 堆龙德庆县| 米林县|