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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

job每分钟执行 oracle_oracle的job怎么设置一个过程每5分钟执行一次

發(fā)布時(shí)間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 job每分钟执行 oracle_oracle的job怎么设置一个过程每5分钟执行一次 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

展開全部

dbms_job.submit(:job1,'MYPROC;',sysdate,'sysdate+5/1440');  --每天1440分鐘,32313133353236313431303231363533e58685e5aeb931333361323466即一分鐘運(yùn)行test過(guò)程一次,分子為5則為每分鐘執(zhí)行一次

具體可以參考我的百度云筆記:

http://wenzhang.baidu.com/page/view?key=dd5fd5e21b9d6ecc-1427393850

一、設(shè)置初始化參數(shù) job_queue_processes

sql> alter system set job_queue_processes=n;(n>0)

job_queue_processes最大值為1000

查看job queue 后臺(tái)進(jìn)程

sql>select name,description from v$bgprocess;

二,dbms_job package 用法介紹

包含以下子過(guò)程:

Broken()過(guò)程。

change()過(guò)程。

Interval()過(guò)程。

Isubmit()過(guò)程。

Next_Date()過(guò)程。

Remove()過(guò)程。

Run()過(guò)程。

Submit()過(guò)程。

User_Export()過(guò)程。

What()過(guò)程。

1、Broken()過(guò)程更新一個(gè)已提交的工作的狀態(tài),典型地是用來(lái)把一個(gè)已破工作標(biāo)記為未破工作。

這個(gè)過(guò)程有三個(gè)參數(shù):job 、broken與next_date。

PROCEDURE Broken (job    IN binary_integer,

Broken  IN boolean,

next_date IN date :=SYSDATE)

job參數(shù)是工作號(hào),它在問(wèn)題中唯一標(biāo)識(shí)工作。

broken參數(shù)指示此工作是否將標(biāo)記為破——TRUE說(shuō)明此工作將標(biāo)記為破,而FLASE說(shuō)明此工作將標(biāo)記為未破。 網(wǎng)管聯(lián)盟www.bitsCN.com

next_date參數(shù)指示在什么時(shí)候此工作將再次運(yùn)行。此參數(shù)缺省值為當(dāng)前日期和時(shí)間。

job如果由于某種原因未能成功之行,oracle將重試16次后,還未能成功執(zhí)行,將被標(biāo)記為broken重新啟動(dòng)狀態(tài)為broken的job,有如下兩種方式;

a、利用dbms_job.run()立即執(zhí)行該job

sql>begin

sql>dbms_job.run(:jobno) 該jobno為submit過(guò)程提交時(shí)返回的job number

sql>end;

sql>/

b、利用dbms_job.broken()重新將broken標(biāo)記為false

sql>begin

sql>dbms_job.broken (:job,false,next_date)

sql>end;

sql>/

2、Change()過(guò)程用來(lái)改變指定工作的設(shè)置。

這個(gè)過(guò)程有四個(gè)參數(shù):job、what 、next_date與interval。

PROCEDURE Change (job    IN binary_integer,

What    IN varchar2,

next_date IN date,

interval  IN varchar2)

此job參數(shù)是一個(gè)整數(shù)值,它唯一標(biāo)識(shí)此工作。

What參數(shù)是由此工作運(yùn)行的一塊PL/SQL代碼塊。

next_date參數(shù)指示何時(shí)此工作將被執(zhí)行。

interval參數(shù)指示一個(gè)工作重執(zhí)行的頻度。 中國(guó)網(wǎng)管論壇bbs.bitsCN.com

3、Interval()過(guò)程用來(lái)顯式地設(shè)置重執(zhí)行一個(gè)工作之間的時(shí)間間隔數(shù)。這個(gè)過(guò)程有兩個(gè)參數(shù):job與interval。

PROCEDURE Interval (job   IN binary_integer,

Interval IN varchar2)

job參數(shù)標(biāo)識(shí)一個(gè)特定的工作。interval參數(shù)指示一個(gè)工作重執(zhí)行的頻度。

4、ISubmit()過(guò)程用來(lái)用特定的工作號(hào)提交一個(gè)工作。這個(gè)過(guò)程有五個(gè)參數(shù):job、what、next_date、interval與no_parse。

PROCEDURE ISubmit (job    IN binary_ineger,

What   IN varchar2,

next_date IN date,

interval IN varchar2,

no_parse IN booean:=FALSE)

這個(gè)過(guò)程與Submit()過(guò)程的唯一區(qū)別在于此job參數(shù)作為IN型參數(shù)傳遞且包括一個(gè)由開發(fā)者提供的工作號(hào)。如果提供的工作號(hào)已被使用,將產(chǎn)生一個(gè)錯(cuò)誤。

5、Next_Date()過(guò)程用來(lái)顯式地設(shè)定一個(gè)工作的執(zhí)行時(shí)間。這個(gè)過(guò)程接收兩個(gè)參數(shù):job與next_date。

PROCEDURE Next_Date(job     IN binary_ineger,

next_date  IN date) 54ne.com

job標(biāo)識(shí)一個(gè)已存在的工作。next_date參數(shù)指示了此工作應(yīng)被執(zhí)行的日期與時(shí)間。

6、Remove()過(guò)程來(lái)刪除一個(gè)已計(jì)劃運(yùn)行的工作。這個(gè)過(guò)程接收一個(gè)參數(shù):

PROCEDURE Remove(job IN binary_ineger);

job參數(shù)唯一地標(biāo)識(shí)一個(gè)工作。這個(gè)參數(shù)的值是由為此工作調(diào)用Submit()過(guò)程返回的job參數(shù)的值。已正在運(yùn)行的工作不能由調(diào)用過(guò)程序刪除。

7、Run()過(guò)程用來(lái)立即執(zhí)行一個(gè)指定的工作。這個(gè)過(guò)程只接收一個(gè)參數(shù):

PROCEDURE Run(job IN binary_ineger)

job參數(shù)標(biāo)識(shí)將被立即執(zhí)行的工作。

8、使用Submit()過(guò)程,工作被正常地計(jì)劃好。

這個(gè)過(guò)程有五個(gè)參數(shù):job、what、next_date、interval與no_parse。

PROCEDURE Submit ( job    OUT binary_ineger,

What   IN varchar2,

next_date IN date,

interval IN varchar2,

no_parse IN booean:=FALSE)

job參數(shù)是由Submit()過(guò)程返回的binary_ineger。這個(gè)值用來(lái)唯一標(biāo)識(shí)一個(gè)工作。

what參數(shù)是將被執(zhí)行的PL/SQL代碼塊。 中國(guó)網(wǎng)管論壇bbs.bitsCN.com

next_date參數(shù)指識(shí)何時(shí)將運(yùn)行這個(gè)工作。

interval參數(shù)何時(shí)這個(gè)工作將被重執(zhí)行。

no_parse參數(shù)指示此工作在提交時(shí)或執(zhí)行時(shí)是否應(yīng)進(jìn)行語(yǔ)法分析——TRUE指示此PL/SQL代碼在它第一次執(zhí)行時(shí)應(yīng)進(jìn)行語(yǔ)法分析,而FALSE指示本PL/SQL代碼應(yīng)立即進(jìn)行語(yǔ)法分析。

9、User_Export()過(guò)程返回一個(gè)命令,此命令用來(lái)安排一個(gè)存在的工作以便此工作能重新提交。

此程序有兩個(gè)參數(shù):job與my_call。

PROCEDURE User_Export(job    IN binary_ineger,

my_call  IN OUT varchar2)

job參數(shù)標(biāo)識(shí)一個(gè)安排了的工作。my_call參數(shù)包含在它的當(dāng)前狀態(tài)重新提交此工作所需要的正文。

10、What()過(guò)程應(yīng)許在工作執(zhí)行時(shí)重新設(shè)置此正在運(yùn)行的命令。這個(gè)過(guò)程接收兩個(gè)參數(shù):job與what。

PROCEDURE What (job IN binary_ineger,

What IN OUT varchar2)

job參數(shù)標(biāo)識(shí)一個(gè)存在的工作。what參數(shù)指示將被執(zhí)行的新的PL/SQL代碼。

三、查看相關(guān)job信息

1、相關(guān)視圖

dba_jobs

all_jobs

user_jobs

dba_jobs_running 包含正在運(yùn)行job相關(guān)信息

54com.cn

2、查看相關(guān)信息

SQL>SELECT JOB, NEXT_DATE, NEXT_SEC, FAILURES, BROKEN

SQL>FROM DBA_JOBS;

JOB NEXT_DATE NEXT_SEC FAILURES B

------- --------- -------- -------- -

9125 01-JUN-01 00:00:00 4 N

14144 24-OCT-01 16:35:35 0 N

9127 01-JUN-01 00:00:00 16 Y

3 rows selected.

正在運(yùn)行的JOB相關(guān)信息

SELECT SID, r.JOB, LOG_USER, r.THIS_DATE, r.THIS_SEC

FROM DBA_JOBS_RUNNING r, DBA_JOBS j

WHERE r.JOB = j.JOB;

SID JOB LOG_USER THIS_DATE THIS_SEC

----- ---------- ------------- --------- --------

12 14144 HR 24-OCT-94 17:21:24

25 8536 QS 24-OCT-94 16:45:12

2 rows selected.

JOB QUEUE LOCK相關(guān)信息

SELECT SID, TYPE, ID1, ID2

FROM V$LOCK

WHERE TYPE = 'JQ';

SID TY ID1 ID2

--------- -- --------- ---------

12 JQ 0 14144

1 row selected.

四、簡(jiǎn)單例子

一個(gè)簡(jiǎn)單例子: 網(wǎng)管網(wǎng)bitsCN.com

創(chuàng)建測(cè)試表

SQL> create table TEST(a date);

表已創(chuàng)建。

創(chuàng)建一個(gè)自定義過(guò)程

SQL> create or replace procedure MYPROC as

2 begin

3 insert into TEST values(sysdate);

4 end;

5 /

過(guò)程已創(chuàng)建。

創(chuàng)建JOB

SQL> variable job1 number;

SQL>

SQL> begin

2 dbms_job.submit(:job1,'MYPROC;',sysdate,'sysdate+1/1440');  --每天1440分鐘,即一分鐘運(yùn)行test過(guò)程一次

3 end;

4 /

PL/SQL 過(guò)程已成功完成。

運(yùn)行JOB

SQL> begin

2 dbms_job.run(:job1);

3 end;

4 /

PL/SQL 過(guò)程已成功完成。

SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 時(shí)間 from TEST;

時(shí)間

-------------------

2001/01/07 23:51:21

2001/01/07 23:52:22

2001/01/07 23:53:24

刪除JOB

SQL> begin

2 dbms_job.remove(:job1);

3 end;

4 / 網(wǎng)管網(wǎng)bitsCN.com

PL/SQL 過(guò)程已成功完成。

本回答被提問(wèn)者采納

已贊過(guò)

已踩過(guò)<

你對(duì)這個(gè)回答的評(píng)價(jià)是?

評(píng)論

收起

總結(jié)

以上是生活随笔為你收集整理的job每分钟执行 oracle_oracle的job怎么设置一个过程每5分钟执行一次的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。