Oracle Scheduler(3)呼叫批處理

zhenghaishu發表於2015-10-23

Oracle Scheduler呼叫批處理(2

 

(一)用system使用者建立一個表

create table test20151021(id int);

 

(二)在D盤根目錄下建立test.sql,內容為

declare

  i int;

begin

  for i in 1..5

  loop

    insert into test20151021 values(i);

  end loop;

  commit;

end;

/

 

 

(三)在D盤根目錄下建立test.bat,內容為

sqlplus system/oracle@local @D:\test.sql

 

注意:這裡@D:\test.sql建議寫成全路徑,而不要使用相對當前路徑@test.sql。原因是假如直接雙擊執行test.bat,因為test.sqltest.bat都位於同一路徑(D盤根目錄)下,@test.sql等價於@D:\test.sql。但是如果使用PLSQL Developer來執行下一步驟時,當前路徑就不再是D盤根目錄了,這個時候@test.sql不等於@D:\test.sql,也就無法往test20151021裡插入資料。

 

(四)用Oracle Scheduler建立Job來呼叫test.bat

BEGIN 

  DBMS_SCHEDULER.CREATE_JOB ( 

    job_name         => 'test_job', 

    job_type          => 'EXECUTABLE', 

    job_action        => 'D:\test.bat', 

    start_date         => sysdate, 

    repeat_interval => 'FREQ=MINUTELY;INTERVAL=1',

    enabled      => TRUE); 

END;

/

 

這裡start_daterepeat_interval兩個引數決定了每隔一分鐘執行一次批處理,第一次是立刻執行

job_type目前支援三種型別: 

PLSQL_BLOCKPL/SQL 

STORED_PROCEDURE,儲存過程

EXECUTABLE,外部程式可以是一個shell或批處理指令碼,也可以是作業系統級別的指令 

  

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29485627/viewspace-1815841/,如需轉載,請註明出處,否則將追究法律責任。

相關文章