Oracle job 使用____Oracle

來源:互聯網
上載者:User

步驟:

(1) 建立作業

(2) 建立job

       dbms_job.submit();

       submit ( jobno OUT binary_ineger,
       What   IN varchar2,
       next_date IN date,
       interval IN varchar2,
         no_parse IN booean:=FALSE)
  
  jobno參數是由Submit()過程返回的binary_ineger。這個值用來唯一標識一個工作。
  what參數是將被執行的PL/SQL代碼塊 也就是task。
  next_date參數指識何時將運行這個工作。
  interval參數何時這個工作將被重執行。
  no_parse參數指示此工作在提交時或執行時是否應進行文法分析——TRUE指示此PL/SQL代碼在它第一次執行時應進行文法分析,而    FALSE指示本PL/SQL代碼應立即進行文法分析。

(3) 運行

     dbms_job.run(jobno); 

(4) 刪除

     dbms_job.remove(jobno)

 

--暫停一個job                    
exec dbms_job.broken(jobno,true)
commit //必須提交否則無效
啟動一個job
exec dbms_job.broken(jobno,false)

/*********************************************************************************/

eg: 通過job 每過一分鐘向一張表裡面插入一條資料

create or replace package body test is
--建立表
procedure createTable is
num number;
begin
    --查看系統資料表裡是否已經存在,沒有建立

    select  count(*) into  num   from  user_tables  where table_name= 'TEMP_JOB';  
    if (num>0) then
       --刪除表
       execute immediate 'drop table temp_job';
       commit;
     end if;
     --建立表
     execute immediate 'create table temp_job(
            address varchar2(200),
            sDate date
     )';
     commit;
end createTable;

 

--建立一個task 往表裡插入記錄
procedure insertRecord as
begin
     insert into temp_job(address,Sdate) values('MM'||sysdate,sysdate);
     commit;
end insertRecord ;

 

--建立一個Scheduling 調度器
procedure scheJob is
jobno NUMBER;
 begin
 --建立表
 test.createTable;
 commit;
 --建立job
 dbms_job.submit(jobno,'scott.test.insertRecord;',sysdate,'sysdate+1/1440');--必須加上使用者.包名.預存程序名 否則報必須說明標識符 'insertRecord'錯誤
 commit;
 --每天1440分鐘,即一分鐘運行test過程一次
 --運行job
 dbms_job.run(jobno);
 commit;
 --刪除job
 --dbms_job.remove(jobno);
end scheJob;

end test;

 

 

運行預存程序

Command Window 視窗

exec scott.test.scheJob ;--使用者名稱.包名.預存程序名

結果:

select * form temp_job;

表 temp_job每隔一分鐘多一條記錄。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.