sql語句定時執行
create or replace procere MYPROCEDURE is
begin
UPDATE mac_vod SET vod_play_url= replace(vod_play_url, '第', '弟');
commit;
end MYPROCEDURE;
declare myjob number;
begin
DBMS_JOB.SUBMIT(
job => myjob,
what => 'myprocere;',
next_date => SYSDATE,
interval => 'sysdate+5/(24*60)');
commit;
end;
㈡ 我想定時讓 oracle 執行一段sql語句 怎麼做
如:定時刪除三分鍾前的數據
###1.創建存儲過程
SQL>createorreplaceprocerepro_delete_aas
2begin
3deletefromatwheret.a<(sysdate-3/1440);###一天1440分鍾。即一分鍾是1/1440
4end;
5/
Procerecreated
###2創建job
SQL>variablejob_pro_delete_anumber;
SQL>begin
2dbms_job.submit(:job_pro_delete_a,'pro_delete_a;',sysdate,'sysdate+3/1440');
3end;
4/
PL/
job_pro_delete_a
---------
127
###3.調用job
SQL>begin
2dbms_job.run(:job_pro_delete_a);
3end;
4/
PL/
job_pro_delete_a
---------
127
###4.刪除job
SQL>begin
2dbms_job.remove(:job_pro_delete_a);
3end;
4/
Ps:select*fromuser_jobs;
dbms_job.remove(ID);
㈢ sql2008 如何定時執行存儲(每月1號凌晨2點自動執行存儲proc_Sales_order)
IFEXISTS(SELECT*FROMmsdb.dbo.sysjobsWHEREname='啟用pubs資料庫')
EXECmsdb.dbo.sp_delete_job@job_name='啟用pubs資料庫'
--定義創建作業
DECLARE@jobiniqueidentifier
EXECmsdb.dbo.sp_add_job
@job_name=N'啟用pubs資料庫',
@job_id=@jobidOUTPUT
--定義作業步驟
DECLARE@sqlnvarchar(400),@dbnamesysname
SELECT@dbname=N'master',--資料庫聯機或者離線只能在master資料庫中進行
@sql=N'ALTERDATABASEpubsSETONLINE'--使用pubs資料庫聯機(啟用)
EXECmsdb.dbo.sp_add_jobstep
@job_id=@jobid,
@step_name=N'啟用pubs資料庫處理',
@subsystem='TSQL',
@database_name=@dbname,
@command=@sql
--創建調度(使用後面專門定義的幾種作業調度模板)
EXECmsdb..sp_add_jobschele
@job_id=@jobid,
@name=N'啟用pubs資料庫處理調度',
@freq_type=4,
@freq_interval=1,
@freq_subday_type=0x1,
@freq_subday_interval=1,
@active_start_time=075000--每天07:50分執行
--添加目標伺服器
DECLARE@servernamesysname
SET@servername=CONVERT(nvarchar(128),SERVERPROPERTY(N'ServerName'))
EXECmsdb.dbo.sp_add_jobserver
@job_id=@jobid,
@server_name=@servername
--給你一個例子不懂在問我
㈣ 如何將一條sql語句每天定時的執行,執行完了,自動發出簡訊
1 使用sql的job來實現sql的定時執行
2 執行完時,將簡訊信息寫入一張有關的信息表。
3 另外一個簡訊服務程序,不停查找待發簡訊,並發送
㈤ 怎麼使某一條sql語句每天定時執行
在linux or Unix系統中有一個叫crontag的東西。
你可以設定執行的時間,它就是每天循環執行了。
格式:(second hour date month week)
00 10 * * * /u01/app/cronjob/exe_select.sh
每天十點整執行一次
㈥ 如何定時的去執行SQL語句
1.把要執行的SQL語句准備好,例如:
use ttNew //使用ttNew資料庫
Go
insert into Users(name) values(" ") //往表Users插入一條記錄
將該語句保存在文件user.sql里,放在d盤跟目錄下。
2.寫一個批處理文件,例如:
再新建一個記事本,里邊寫上語句osql -E -i d:\user.sql,保存為11.bat
3.利用系統任務計劃調用批處理文件,執行SQL語句
在系統程序->附件->系統工具->任務計劃
添加新任務計劃,點下一步,再點瀏覽,找到11.bat文件,後,選擇執行時間,點下一步。一直點,最後輸入本機的密碼,點完成。
㈦ php如何定時的執行sql語句
在mysql中創建事件,可用於定時執行
CREATE EVENT
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schele
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
㈧ Oracle中如何定時執行一條SQL語句
通過網上查詢,找到一種方案,就是先在oracle裡面對要定時的sql寫成存儲過程,再用DBMS_scheler對存儲過程進行定時執行。
在資料庫中新建了一個表MY_JOB_TEST
在資料庫中新建了一個表MY_JOB_TEST
在資料庫中新建了一個表MY_JOB_TEST
在PLSQL中,執行下面語句模擬存儲過程的調用,執行後要點提交才有反應
[sql] view plain
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
GrantCreateJobTo指定用戶名
SQL>CREATEORREPLACEPROCEDURE
JOB_TEST
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
- (此處要執行存儲過程不能用exec JB_TEST,這種執行方式只能在命令行中使用)
SQL>BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name=>'SCHEDULER_TEST',
job_type=>'STORED_PROCEDURE',
job_action=>'JOB_TEST',
start_date=>sysdate,
repeat_interval=>'FREQ=MINUTELY;INTERVAL=1');
END;
- 但是這樣子定時任務並不會執行。
SQL>SELECT*FROMUSER_SCHEDULER_JOBS;
- 此時我們可以看到enable的狀態是false的,因此我們需要去啟動定時任務
SQL>BEGIN
DBMS_SCHEDULER.ENABLE('SCHEDULER_TEST');
然後下面建立一個存儲過程JOB_TEST
(注意,這里用戶需要CREATE JOB許可權,可以用超級管理員用戶執行下面語句給指定用戶賦予該許可權)
[sql] view plain
[sql] view plain
使用DBMS_SCHEDULER進行定時,這里為每分鍾執行一次
[sql] view plain
我們可以用下面的命令查看一下scheler的狀態
[plain] view plain
[plain] view plain
dbms_scheler.enable('j_test'); --啟用jobs
dbms_scheler.disable('j_test'); --禁用jobs
dbms_scheler.run_job('j_test'); --執行jobs
dbms_scheler.stop_job('j_test'); --停止jobs
dbms_scheler.drop_job('j_test'); --刪除jobs
然後再查詢job的enable裝態,發現為true了。
然後查看MY_JOB_TEST表,發現每分鍾會往裡面添加記錄。
當需要修改定時任務或者調度的其他屬性時,可以用下面的
dbms_scheler.set_attribute('調度名','調度屬性','調度值');
至此,定時任務完成。