用DBMS_JOB來實現高階計劃任務
dbms_job.submit(what='statspack_alert.sql;',
next_date=sysdate+1/24, -- 在下一個小時後啟動
interval='sysdate+1/24'); -- 每小時執行一次
問題是,儘管我們在這個程式中指定了任務起始時間和重新執行的時間間隔,但是我們看不到在預定時間執行該任務的機制。例如,如何讓一個任務在早上8點啟動、每小時 執行一次、最後在下午5點終止呢?
上面的例子讓該任務每小時執行一次,但是為了獲得時間間隔,它有必要建立兩個其它任務:一個任務在下午5點終止(主)任務,另一個任務在第二天早上8點啟動(主)任務。
為了實現高階計劃任務,我們可以建立自定義間隔,讓任務在特定的時間間隔來啟動和終止。下面是一個例子:
--
--Schedule a snapshot to be run on this instance every hour
variable jobno number;
variable instno number;
begin
select instance_number into :instno from v$instance;
-- ------------------------------------------------------------
-- 提交任務從6:00開始,每小時執行一次
-- ------------------------------------------------------------
dbms_job.submit(
jobno, 'statspack.snap;',
trunc(sysdate)+6/24,
'trunc(SYSDATE+1/24,''HH'')',
TRUE,
instno);
-- ------------------------------------------------------------
-- 提交任務從9:00開始,12小時後執行
-- ------------------------------------------------------------
dbms_job.submit(
jobno,
'statspack.snap;',
trunc(sysdate+1)+9/24,
'trunc(SYSDATE+12/24,''HH'')',
TRUE,
instno);
-- ------------------------------------------------------------
-- 提交任務從6:00開始,每隔十分鐘執行一次
-- ------------------------------------------------------------
dbms_job.submit(
jobno,
'statspack.snap;',
trunc(sysdate+1/144,'MI'),
'trunc(sysdate+1/144,''MI'')',
TRUE,
instno);
-- ----------------------------------------------------------------
-- 提交任務從週一到週五早上6:00開始,每小時執行一次
-- ----------------------------------------------------------------
dbms_job.submit(
jobno,
'statspack.snap;',
trunc(sysdate+1)+6/24,
'trunc(
least(
next_day(SYSDATE,''MONDAY''),
next_day(SYSDATE,''TUESDAY''),
next_day(SYSDATE,''WEDNESDAY''),
next_day(SYSDATE,''THURSDAY''),
next_day(SYSDATE,''FRIDAY'')
)
+1/24,''HH'')',
TRUE,
instno);
commit;
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9099175/viewspace-1001527/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用at和cron實現任務計劃
- 實現一個“計劃任務”機制
- Linux 任務計劃管理Linux
- .NetCore Hangfire任務計劃NetCore
- 用CompletableFuture實現非同步任務非同步
- mysql和oracle計劃任務MySqlOracle
- Spring定時任務高階使用篇Spring
- oracle定時任務dbms_job與dbms_scheduler使用方法Oracle
- Oracle 任務管理之 ----program(程式)---scheduler(計劃)--Job(任務)Oracle
- win10計劃任務如何關閉_win10怎麼禁用計劃任務Win10
- PowerShell管理系統計劃任務
- 論linux下計劃任務示例Linux
- linux中crontab計劃任務怎麼刪除?linux中crontab計劃任務的刪除方法Linux
- win10計劃任務程式庫實現定時任務的自動執行程式及問題解決。Win10行程
- windows計劃任務的“等待空閒時間”已棄用Windows
- 程式與計劃任務管理(at 及 crontab)
- 程式和計劃任務_______GongWei1997Go
- 如何使用 cron 任務在 Linux 中計劃和自動化任務Linux
- Windows計劃任務出現0x1錯誤結果Windows
- Laravel-Schedule 計劃任務「原理了解」Laravel
- Linux 學習筆記--任務計劃 crontabLinux筆記
- 08.計劃任務課後習題
- mysql透過計劃任務建立月表MySql
- 檔案許可權與計劃任務
- gojs 實用高階用法GoJS
- 如何利用 Seaborn 實現高階統計圖表
- Spring Boot整合quartz實現定時任務並支援切換任務資料來源Spring Bootquartz
- 從基礎到高階應用,詳解用Python實現容器化和微服務架構Python微服務架構
- 在 Linux 中怎麼使用 cron 計劃任務Linux
- [外掛擴充套件]計劃任務外掛套件
- win10 64位計劃任務沒啟動怎麼辦_win10 64位計劃任務如何啟動Win10
- css高階應用三種方法實現多行省略CSS
- CSS Houdini:用瀏覽器引擎實現高階CSS效果CSS瀏覽器
- Windows 任務計劃隱藏顯示黑視窗Windows
- Linux基礎學習-crond系統計劃任務Linux
- windows新增計劃任務異常--問題總結Windows
- 勵志!幾年前還是甜菜根農民的他現在是《巫師4》高階任務設計師
- Python 高階程式設計:深入探索高階程式碼實踐Python程式設計
- Java如何實現定時任務?Java