存儲過程定時執行
SQL代理中添加工作計劃(job)
『貳』 如何讓存儲過程定時執行
排一個JOB。
SQL Server 代理>作業>新建作業
常規里設置好JOB的名字和說明
步驟里設置要執行的過程語句
計劃里設置執行的時間
『叄』 怎樣實現每天自動執行oracle的存儲過程一次
用job
oracle定時器調用存儲過程
1、創建一個表,為了能清楚看到定時器的運行情況我們創建一個帶有日期欄位的表
Sql代碼
create table job_table(run_time date);
create table job_table(run_time date);
2、創建存儲過程
Sql代碼
create or replace procere job_proc is
begin
insert into job_table (run_time) values (sysdate);
end;
create or replace procere 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) ...
『肆』 oracle自動定期執行存儲過程
用job
oracle定時器調用存儲過程
1.創建一個表,為了能清楚看到定時器的運行情況我們創建一個帶有日期欄位的表
Sql代碼
create table job_table(run_time date);
create table job_table(run_time date);
2.創建存儲過程
Sql代碼
create or replace procere job_proc is
begin
insert into job_table (run_time) values (sysdate);
end;
create or replace procere 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 job的唯一標識,自動生成的
broken 是否處於運行狀態,N;運行;Y:停止
what 存儲過程名稱
interval 定義的執行時間
補充:
描述 INTERVAL參數值
每天午夜12點 ''TRUNC(SYSDATE + 1)''
每天早上8點30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)''
每星期二中午12點 ''NEXT_DAY(TRUNC(SYSDATE ), ''''TUESDAY'''' ) + 12/24''
每個月第一天的午夜12點 ''TRUNC(LAST_DAY(SYSDATE ) + 1)''
每個季度最後一天的晚上11點 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q'' ) -1/24''
每星期六和日早上6點10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE, ''''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)''
『伍』 如何每天定時執行一個存儲過程
1、打開SQL Server Management Studio,SQL Server代理--作業--點右鍵--新建作業
2、作業的名稱取為:test,並進行說明,若作業的數量太多,以方便區別; 這里寫上定時執行存儲過程Pr_test,確定保存.
3、點擊常規下面的步驟,按箭頭指示,新建步驟.
4、取名步驟名稱:exec pr_test,注意選擇存儲過程所在的資料庫;錄入需要執行的命令:exec pr_test ,確定保存.
若有其它參數命令也可以編寫
5、新建計劃,進放計劃屬性設置窗口.
6、依然要填寫計劃的名稱:exec pr_test
計劃類型:重復計劃
時間頻率:每月的26日的12點30分自動執行一次
持續時間:無結束日期
確定保存.到此基本功能已經設置完成,額外其它功能可以根據需要進行增加.
『陸』 SQL Server 里需要定時執行某個存儲過程,存儲過程怎麼寫
1、管理->SQL Server代理->作業(按滑鼠右鍵)->新建作業->
2、新建作業屬性(常規)->名稱[自定義本次作業的名稱]->啟用的方框內是勾號->
分類處可選擇也可用默認的[未分類(本地)]->所有者默認為登錄SQL Server用戶[也可選其它的登錄]->描述[填寫本次工作詳細描述內容];[ 創建作業分類的步驟:SQL Server代理->作業->右鍵選所有任務->添加、修改、刪除 ]
3、新建作業屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->類型[Transact-SQL(TSQL)腳本]->資料庫[要操作的資料庫]->命令[ 如果是簡單的SQL直接寫進去即可,也可用打開按鈕輸入一個已寫好的*.sql文件如果要執行存儲過程,填exec p_procere_name v_parameter1,[ v_parameter2…v_parameterN]]->確定(如果有多個步驟,可以再次調用下面的新建按鈕;也可以對已有的多個步驟插入、編輯、刪除);
4、建作業屬性(調度)->新建調度->名稱[自定義調度名稱]->啟用的方框內是勾號->調度->反復出現->更改[調度時間表]->確定(如果只要保存此作業,不要定時做可以把啟用的方框內是勾號去掉);
5、建作業屬性(通知)->用默認的通知方法就好[當作業失敗時,寫入Windows應用程序系統日誌] ->確定。
『柒』 如何讓oracle定時執行一個存儲過程
用job
oracle定時器調用存儲過程
1.創建一個表,為了能清楚看到定時器的運行情況我們創建一個帶有日期欄位的表
Sql代碼
create table job_table(run_time date);
create table job_table(run_time date);
2.創建存儲過程
Sql代碼
create or replace procere job_proc is
begin
insert into job_table (run_time) values (sysdate);
end;
create or replace procere 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 job的唯一標識,自動生成的
broken 是否處於運行狀態,N;運行;Y:停止
what 存儲過程名稱
interval 定義的執行時間
補充:
描述 INTERVAL參數值
每天午夜12點 ''TRUNC(SYSDATE + 1)''
每天早上8點30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)''
每星期二中午12點 ''NEXT_DAY(TRUNC(SYSDATE ), ''''TUESDAY'''' ) + 12/24''
每個月第一天的午夜12點 ''TRUNC(LAST_DAY(SYSDATE ) + 1)''
每個季度最後一天的晚上11點 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q'' ) -1/24''
每星期六和日早上6點10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE, ''''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)''
『捌』 定時執行帶參數的存儲過程,怎麼定義job
/*
查詢:
selectjob,broken,what,interval,t.*fromuser_jobst;
jobjob的唯一標識,自動生成的
broken是否處於運行狀態,N;運行;Y:停止
what存儲過程名稱
next_date初次執行時間
interval執行周期
刪除:
begindbms_job.remove(jobno);end;
根據what的內容確定其對應的job,並如此執行刪除
執行時間例子:
描述INTERVAL參數值
每天午夜12點''TRUNC(SYSDATE+1)''
每天早上8點30分''TRUNC(SYSDATE+1)+(8*60+30)/(24*60)''
每星期二中午12點''NEXT_DAY(TRUNC(SYSDATE),''''TUESDAY'''')+12/24''
每個月第一天的午夜12點''TRUNC(LAST_DAY(SYSDATE)+1)''
每個季度最後一天的晚上11點''TRUNC(ADD_MONTHS(SYSDATE+2/24,3),''Q'')-1/24''
每星期六和日早上6點10分''TRUNC(LEAST(NEXT_DAY(SYSDATE,''''SATURDAY"),NEXT_DAY(SYSDATE,"SUNDAY")))+(6×60+10)/(24×60)''
每3秒鍾執行一次'sysdate+3/(24*60*60)'
每2分鍾執行一次'sysdate+2/(24*60)'
1:每分鍾執行
Interval=>TRUNC(sysdate,'mi')+1/(24*60)--每分鍾執行
interval=>'sysdate+1/(24*60)'--每分鍾執行
interval=>'sysdate+1'--每天
interval=>'sysdate+1/24'--每小時
interval=>'sysdate+2/24*60'--每2分鍾
interval=>'sysdate+30/24*60*60'--每30秒
2:每天定時執行
Interval=>TRUNC(sysdate+1)--每天凌晨0點執行
Interval=>TRUNC(sysdate+1)+1/24--每天凌晨1點執行
Interval=>TRUNC(SYSDATE+1)+(8*60+30)/(24*60)--每天早上8點30分執行
3:每周定時執行
Interval=>TRUNC(next_day(sysdate,'星期一'))+1/24--每周一凌晨1點執行
Interval=>TRUNC(next_day(sysdate,1))+2/24--每周一凌晨2點執行
4:每月定時執行
Interval=>TTRUNC(LAST_DAY(SYSDATE)+1)--每月1日凌晨0點執行
Interval=>TRUNC(LAST_DAY(SYSDATE))+1+1/24--每月1日凌晨1點執行
5:每季度定時執行
Interval=>TRUNC(ADD_MONTHS(SYSDATE,3),'q')--每季度的第一天凌晨0點執行
Interval=>TRUNC(ADD_MONTHS(SYSDATE,3),'q')+1/24--每季度的第一天凌晨1點執行
Interval=>TRUNC(ADD_MONTHS(SYSDATE+2/24,3),'q')-1/24--每季度的最後一天的晚上11點執行
6:每半年定時執行
Interval=>ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24--每年7月1日和1月1日凌晨1點
7:每年定時執行
Interval=>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24--每年1月1日凌晨1點執行
相關方法:
修改要執行的操作:dbms_job.what(jobno,'sp_fact_charge_code;');--修改某個job名
修改下次執行時間:dbms_job.next_date(job,next_date);
修改間隔時間:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
dbms_job.broken(v_job,true,next_date);--停止一個job,裡面參數true也可是false,next_date(某一時刻停止)也可是sysdate(立刻停止)。
*/
createorreplaceprocereproc_auto_exec_jobas
begin
declare
jobnumber;
BEGIN
DBMS_JOB.SUBMIT(
JOB=>job,/*自動生成JOB_ID*/
WHAT=>'proc_test_job;',/*需要執行的過程或SQL語句*/
/*NEXT_DATE=>sysdate,*//*初次執行時間,立刻執行*/
/*INTERVAL=>'sysdate+3/(24*60*60)'*//*執行周期-每3秒鍾*/
NEXT_DATE=>TRUNC(SYSDATE+1)+(0*60+30)/(24*60), /*初次執行時間,12點30分*/
INTERVAL=>'TRUNC(SYSDATE+1)+(0*60+30)/(24*60)' /*每天12點30分*/
);
COMMIT;
/*dbms_job.submit(job,'proc_test_job;',sysdate,'trunc(sysdate,''mi'')+1/(24*60)');/*執行周期-每1分鍾*/
commit;*/
DBMS_JOB.RUN(job);
end;
endproc_auto_exec_job;
beginproc_auto_exec_job;end;
ORACLE 定時執行存儲過程
『玖』 用存儲過程做一個定時任務
表建好後,創建PROCEDURE
直接寫:
CREATE OR REPLACE PROCEDURE INSERT_SP AS
BEGIN
INSERT INTO salesbusiness
SELECT * from table;
COMMIT;
END INSERT_SP ;
建立JOB:
DECLARE
job_no_ NUMBER;
BEGIN
DBMS_JOB.SUBMIT(job_no_,
'INSERT_SP;',
sysdate,
'TRUNC(sysdate)+1+20/24'); -- 20/24 每天晚上8點
COMMIT;
END;
查詢JOB:
select
job,last_date,last_sec,next_sec,total_time,interval,what
from user_jobs;
全手寫。。。望給分。。。
『拾』 mysql怎麼讓一個存儲過程定時執行
創建事件,然後事件內容就是調用這個存儲過程。
CREATEEVENT事件名ONSCHEDULEEVERY1DAYSTARTS'2016-11-2800:00:00'存儲過程名();
將上面的中文換成你對應的,就是每天凌晨0點定時執行那個存儲過程