日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 作业

發布時間:2023/12/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 作业 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oracle 作業

dbms_job與 dbms_scheduler 用于安排和管理作業隊列,通過使用作業,可以使ORACLE數據庫定期執行特定的任務。

一. dbms_job

1.1. 創建

variable jobno number;
begin
dbms_job.submit(:jobno,'proce_t;', sysdate, 'sysdate+1/24/60');
commit;
end;
/

1.2. 參數

Job 輸出變量,是此任務在任務隊列中的編號。

what 執行的任務的名稱及其輸入參數。

next_date 何時運行這個工作。寫Job的時候可以不指定該值。

interval 任務執行的時間間隔。

每天運行一次
'SYSDATE + 1'
每小時運行一次
'SYSDATE + 1/24'
每10分鐘運行一次
'SYSDATE + 10/(6024)
每30秒運行一次
'SYSDATE + 30/(6024*60)'
每隔一星期運行一次
'SYSDATE + 7'

1.3. 管理

查看用戶job
select * from user_jobs;

刪除job
exec dbms_job.remove(jobno);

修改下次執行時間
exec dbms_job.next_date(jobno, next_date);

修改間隔時間
exec dbms_job.interval(jobno, interval);

啟動job
exec dbms_job.run(jobno);

停止job
exec dbms.broken(jobno, true, nextdate);

查看進程數
show parameter job_queue_processes;
必須大于0,否則執行下面的命令修改:
alter system set job_queue_processes=10;

二. dbms_scheduler

在Oracle 10g之前,我們通過DBMS_JOB來管理定時任務;而10g之后,則推薦使用DBMS_SCHEDULER來管理定時任務,因為它提供了更強大的功能和靈活的機制。

2.1. 創建

begin
dbms_scheduler.create_job (
job_name => 'test',
job_type => 'STORED_PROCEDURE',
job_action => 'proce_t',
start_date => sysdate,
repeat_interval => 'FREQ=MINUTELY;INTERVAL=1',
enabled => true
);
end;
/

2.2. 參數

job_name: 必選, 任務名稱
job_type: 必選, 任務類型

  • PLSQL_BLOCK, -- 執行一個PL/SQL匿名快
  • STORED_PROCEDURE, -- 執行一個存儲過程
  • EXECUTABLE, -- 執行一個外部程序
  • CHAIN -- 執行一個CHAIN

job_action: 必選, 任務內容, 與job_type配合使用
start_date : 可選, 首次執行時間, 為空時表示立即執行
repeat_interval: 可選, 執行頻率, 為空時表示只執行一次

  • FREQ=MINUTELY; -- 表示間隔單位, 可選值有YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY
  • INTERVAL=1 -- 表示間隔周期

enabled: 可選, 是否啟用任務

2.3. 管理

查看用戶scheduler_job
select * from user_scheduler_jobs;

刪除scheduler_job
exec dbms_scheduler.drop_job(job_name => 'CLEANQUEUE');

查看JOB運行日志
select log_id, log_date, status from user_scheduler_job_run_details where job_name='TEST_JOB1';

調度作業
exec dbms_scheduler.run_job('test');

停止作業
exec dbms_scheduler.stop_job('test');

轉載于:https://www.cnblogs.com/xuty/p/8534292.html

總結

以上是生活随笔為你收集整理的Oracle 作业的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。