創(chuàng)建scheduler,PL/SQL Developer里可以直接創(chuàng)建,也可以寫SQL創(chuàng)建,類似以下語法:
高坪網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
begin
sys.dbms_scheduler.create_schedule(schedule_name = 'FRQ_CATALOG.TT',
start_date = to_date('18-10-2011 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval = 'Freq=Daily;Interval=0',
end_date = to_date('31-10-2011 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
comments = '');
end;
如果懂了希望點(diǎn)一下采納
那是自動任務(wù)創(chuàng)建job,你這里具體怎么改表沒說,我就大致舉個例子declare
jobno number;
begin
dbms_job.submit(jobno,'begin update table1 set a=''test''; end;',trunc(sysdate)+1,'trunc(sysdate)+1');
end;
這里第一個參數(shù)是任務(wù)編號,系統(tǒng)自動賦值。也可以采用isubmit來手動指定第二個參數(shù)是需要執(zhí)行的任務(wù)過程,代碼長的話,可以將它寫到一個存儲過程里,再放到里面調(diào)用,比如'pro_test;' (pro_test假定為一個存儲過程名)第三個參數(shù)是,自動任務(wù)第一次執(zhí)行的時(shí)間,如果需要它立即執(zhí)行,則使用sysdate最后一個參數(shù),系統(tǒng)根據(jù)該參數(shù)的值指定下一次的執(zhí)行時(shí)間。如果需要每天0點(diǎn)執(zhí)行,就用我上面寫的 創(chuàng)建好job后,可以在all_jobs中查詢它的狀態(tài)不需要時(shí),使用dbms_job.remove來移除。dbms_job.broken可以用來停止和啟動任務(wù)
用job
oracle定時(shí)器調(diào)用存儲過程
1、創(chuàng)建一個表,為了能清楚看到定時(shí)器的運(yùn)行情況我們創(chuàng)建一個帶有日期字段的表
Sql代碼 ?
create table job_table(run_time date); ?
create table job_table(run_time date);
2、創(chuàng)建存儲過程
Sql代碼 ?
create or replace procedure job_proc is ?
begin
insert into job_table (run_time) values (sysdate); ?
end; ?
create or replace procedure job_proc is
begin
insert into job_table (run_time) values (sysdate);
end;
3、創(chuàng)建job,并且指定為一分鐘執(zhí)行一次
Sql代碼 ?
declare
job number; ?
begin
dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)'); ?
end/ ?
commit; ?
declare
job number;
begin
dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');
end/
commit;
4.創(chuàng)建之后自動處于運(yùn)行狀態(tài),我們查詢job表,看看我們創(chuàng)建的job
Sql代碼 ?
select job,broken,what,interval,t.* from user_jobs t; ?
select job,broken,what,interval,t.* from user_jobs t;
job broken what interval ...
81 N job_proc; TRUNC(sysdate,'mi') + 1 / (24*60) ...
用job
oracle定時(shí)器調(diào)用存儲過程
創(chuàng)建一個表,為了能清楚看到定時(shí)器的運(yùn)行情況我們創(chuàng)建一個帶有日期字段的表
Sql代碼 ?
create table job_table(run_time date); ?
create table job_table(run_time date);
2.創(chuàng)建存儲過程
Sql代碼 ?
create or replace procedure job_proc is ?
begin
insert into job_table (run_time) values (sysdate); ?
end; ?
create or replace procedure job_proc is
begin
insert into job_table (run_time) values (sysdate);
end;
3.創(chuàng)建job,并且指定為一分鐘執(zhí)行一次
Sql代碼 ?
declare
job number; ?
begin
dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)'); ?
end/ ?
commit; ?
declare
job number;
begin
dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');
end/
commit;
4.創(chuàng)建之后自動處于運(yùn)行狀態(tài),我們查詢job表,看看我們創(chuàng)建的job
Sql代碼 ?
select job,broken,what,interval,t.* from user_jobs t; ?
select job,broken,what,interval,t.* from user_jobs t;
job broken what interval ...
81 N job_proc; TRUNC(sysdate,'mi') + 1 / (24*60) ...
在web.xml配置一個servlet設(shè)置啟動順序優(yōu)先級高些(說白了就是web服務(wù)啟動時(shí)調(diào)用這個類)
servlet
servlet-namet1/servlet-name
servlet-classcom.base.test.T1/servlet-class
!-- 如果需要自動加載,加下面一句 --
load-on-startup1/load-on-startup
/servlet
在這個T1類中的初始化方法ini中寫一個Timer類,按shcedule 定時(shí)去執(zhí)行那個業(yè)務(wù)方法即可。
通過plsql查看tables、views等文件夾,找到定時(shí)器對應(yīng)的DBMS_Jobs文件夾。
在文件夾或者在已有的定時(shí)器上右鍵 new... 創(chuàng)建一個新的job(定時(shí)器)
輸入紅色選中的必輸參數(shù)。What里面是一些存儲過程,可以是一個或者多個。多個之間用分好;隔開,可以數(shù)據(jù)一下注釋說明,格式“/*存過說明*/。點(diǎn)擊應(yīng)用即可保存。點(diǎn)擊View SQL可以查看job對應(yīng)的sql腳本。
如果想查看一些腳本,處理通過打開文件夾的方式,也可以使用更方便的sql語句進(jìn)行查看。
SELECT * FROM dba_jobs;
注意,如果next_date是4000-1-1表示這個腳本已經(jīng)是停止?fàn)顟B(tài)。
如果想查詢某個存儲過程對應(yīng)的哪個job可以通過dba_jobs表中what字段根據(jù)條件查詢查看job.
dba_jobs中的job字段對應(yīng)的值就和DBMS_Jobs中對應(yīng)的數(shù)字是一致的,可以對信息進(jìn)行修改更新。
你的另一個問題不是有人說過了么?不需要刪除,只需要增加一個時(shí)間標(biāo)志字段記錄訂單的產(chǎn)生時(shí)間。判斷訂單有效的時(shí)候加一個判斷就是了,如果需要查詢,查詢條件增加對時(shí)間的判斷,在時(shí)間標(biāo)志字段上建立索引就好。
如果實(shí)在需要刪除的,那么也是應(yīng)該通過定時(shí)任務(wù)來批量刪除,可以用oracle_job,也可以用腳本/程序配合系統(tǒng)的定時(shí)任務(wù)功能(例如Linux的cron或者at,Windows的任務(wù)計(jì)劃管理)來實(shí)現(xiàn)。每條記錄都調(diào)用觸發(fā)器,性能消耗很大的。
文章題目:oracle怎么定時(shí)器 oracle定時(shí)器執(zhí)行語句
文章路徑:http://jinyejixie.com/article34/hehsse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、定制開發(fā)、App設(shè)計(jì)、響應(yīng)式網(wǎng)站、做網(wǎng)站、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)