當前位置:首頁 » 存儲配置 » 定時執行的存儲過程

定時執行的存儲過程

發布時間: 2023-08-10 03:02:04

❶ 用存儲過程做一個定時任務

表建好後,創建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;
全手寫。。。望給分。。。

❷ oracle定時執行怎麼執行多個存儲過程

定時執行存儲過程,需要在job里定義;而執行多個存儲過程,則在job中定義多次即可。

運行環境:oracle 10g

1、定義其中一個job

sql">declare
jobnonumber;
begin
dbms_job.submit(11,
what=>'pro_bdc_bh(
to_char(add_months(trunc(sysdate),-1),''yyyy''),
to_char(add_months(trunc(sysdate),-1),''MM''),
''true''
);',
next_date=>sysdate,
Interval=>'TRUNC(sysdate)+1+2/(24)');
commit;
end;

注意:其中pro_bdc_bh為存儲過程名稱,TRUNC(sysdate) + 1 +2 / (24)為定義的運行時間為每日凌晨2點。

2、然後定義另外一個job

declare
jobnonumber;
begin
dbms_job.submit(11,
what=>'p_test(
to_char(add_months(trunc(sysdate),-1),''yyyy''),
to_char(add_months(trunc(sysdate),-1),''MM''),
''true''
);',
next_date=>sysdate,
Interval=>'TRUNC(sysdate)+1+2/(24)');
commit;
end;

注意:這次運行的存儲過程名為p_test,運行時間同樣為每日凌晨2點。

3、創建job完成後,可通過具有創建job的賬號查詢創建是否成功,語句如下:

select*fromuser_jobs;

❸ 定時執行帶參數的存儲過程,怎麼定義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 定時執行存儲過程

❹ sql server 怎麼定時執行存儲過程

sql
server中執行帶參數的存儲過程的方法是:
exec
存儲過程名字
'參數1','參數2',數值參數
exec
是一個關鍵字。
字元串參數使用單引號括起來,數值參數不需要使用單引號

❺ 如何每天定時執行一個存儲過程

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分自動執行一次
     持續時間:無結束日期
     確定保存.到此基本功能已經設置完成,額外其它功能可以根據需要進行增加.

❻ 怎樣讓sqlserver後台定時執行某個存儲過程

SQL代理中添加工作計劃(job)

❼ 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應用程序系統日誌] ->確定。

❽ sql server:如何設置自動執行的存儲過程

--方法1:作業里定時執行存儲過程定時作業的制定 企業管理器 --管理 --SQL Server代理 --右鍵作業 --新建作業 --"常規"項中輸入作業名稱 --"步驟"項 --新建 --"步驟名"中輸入步驟名 --"類型"中選擇"Transact-SQL 腳本(TSQL)" --"資料庫"選擇執行命令的資料庫 --"命令"中輸入要執行的語句: EXEC 存儲過程名 ... --該存儲過程用於創建表 --確定 --"調度"項 --新建調度 --"名稱"中輸入調度名稱 --"調度類型"中選擇你的作業執行安排 --如果選擇"反復出現" --點"更改"來設置你的時間安排 然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行 設置方法: 我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定. --方法2:將存儲過程創建在master資料庫中,然後企業管理器中找到這個存儲過程--右鍵--屬性--勾選"每當sql server啟動時執行"。 或在master中創建存儲過程後,執行語句配置為自動啟動 use master exec sp_procoption '存儲過程名','startup','on' 自動執行存儲過程 SQL Server 啟動時能夠自動執行一個或多個存儲過程。這些存儲過程必須由系統管理員創建,並在 sysadmin 固定伺服器角色下作為後台過程執行。這些過程不能有任何輸入參數。 對啟動過程的數目沒有限制,但是要注意,每個啟動過程在執行時都會佔用一個連接。假如必須在啟動時執行多個過程,但無需並行執行,則能夠指定一個過程作為啟動過程,讓該過程調用其他過程。這樣就只佔用一個連接。 在啟動時恢復了最後一個資料庫後,即開始執行存儲過程。若要跳過這些存儲過程的執行,請將啟動參數指定為跟蹤標記 4022。假如以最低配置啟動 SQL Server(使用 -f 標記),則啟動存儲過程也不會執行。有關更多信息,請參見跟蹤標記。 若要創建啟動存儲過程,必須作為 sysadmin 固定伺服器角色的成員登錄,並在 master 資料庫中創建存儲過程。 使用 sp_procoption 能夠: 將現有存儲過程指定為啟動過程。

熱點內容
android讀取視頻 發布:2025-02-02 03:46:57 瀏覽:822
手機號序列碼的密碼在哪裡 發布:2025-02-02 03:29:34 瀏覽:873
安卓怎麼換回鴻蒙系統 發布:2025-02-02 03:24:35 瀏覽:507
完美國際鄰水鎮箱子密碼是多少 發布:2025-02-02 03:17:04 瀏覽:619
測試java程序 發布:2025-02-02 03:16:49 瀏覽:888
android羅升陽 發布:2025-02-02 03:15:01 瀏覽:824
javascript編程語言 發布:2025-02-02 03:05:49 瀏覽:361
用電賬號初始密碼多少 發布:2025-02-02 03:04:03 瀏覽:109
python賦值運算符 發布:2025-02-02 03:00:51 瀏覽:905
怎麼查詢電腦ip地址和dns伺服器 發布:2025-02-02 02:57:50 瀏覽:240