熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

教你快速掌握一個簡單的Oracle定時任務

2013-11-13 12:46:31  來源: Oracle 
在PLSQL中創建表

  

  create table HWQYTEST ( CARNO VARCHAR() CARINFOID NUMBER )

  在PLSQL中創建存儲過程

  

  create or replace procedure pro_test AS carinfo_id number; BEGIN select s_CarInfoIDnextval into carinfo_id from dual; insert into test(testcarnotestcarinfoid) values(carinfo_id); commit; end pro_test;

  在SQL命令窗口中啟動任務

  在SQL>後執行

  

  VARIABLE jobno number; begin DBMS_JOBSUBMIT(:jobno pro_test; SYSDATEsysdate+//); commit; end; /

  提交後提示

  

  英文代碼

  跟蹤任務的情況(查看任務隊列)

  

  SQL> select jobnext_datenext_secfailuresbroken from user_jobs; JOB NEXT_DATE NEXT_SEC FAILURES BROKEN ?:: N

  

  

  說明有一個任務存在了

  執行select * from test t查看定時任務的結果可以看出定時任務是正常執行了的

  

  停止已經啟動的定時任務:

  先執行select jobnext_datenext_secfailuresbroken from user_jobs;

  以查看定時任務的job號

  在SQL>中執行下面的語句停止一個已經啟動的定時任務

  

  begin dbms_jobremove(); commit; end; /

  表示停止job為的任務

  執行後顯示如下

  

  PL/SQL procedure successfully completed

  查看進程數

  

  show parameter job_queue_processes; 必須>否則執行下面的命令修改 alter system set job_queue_processes=;

  再創建一個任務(每分鐘執行一次)

  

  variable jobno number; begin dbms_jobsubmit(:jobno pro_test; sysdatesysdate+//); commit; end; /

  建立一個定時任務後在PLSQL中查看JOB它的sql語句類似的是如下

  

  begin sysdbms_jobsubmit(job => :jobno what => pro_test; next_date => to_date( :: ddmmyyyy hh:mi:ss) interval => sysdate+//); commit; end; / 所以創建一個任務的完整的格式是 variable jobno number; begin sysdbms_jobsubmit(job => :jobno what => pro_test; next_date => to_date( :: ddmmyyyy hh:mi:ss) interval => sysdate+//); commit; end; / 系統會自動分配一個任務號jobno

   執行select jobnext_datenext_secfailuresbroken from user_jobs;

  結果

  

  JOB NEXT_DATE NEXT_SEC FAILURES BROKEN AM :: :: N PM :: :: N PM :: :: N


From:http://tw.wingwit.com/Article/program/Oracle/201311/16558.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.