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