業務需求,需要與a公司做資料對接,我們公司用的oracle,a公司用的sql server資料庫,如何跨資料庫建立連線呢?這裡使用的是dblink,不會配置的請看我的另外一篇部落格:
我們已經知道job是乙個定時任務,也就是說可以在乙個規定的時間內,執行某一項任務,這個任務就是「儲存過程」。
1 create or replace procedure proc_add_test as2begin
3 insert into test values (to_char(sysdate, '
yyyy-mm-dd hh:mi
'));/*
向測試表插入資料
*/4 commit; /*
提交*/
5end;67
8 create or replace procedure 儲存過程名稱 as
9begin
10/*
業務邏輯片段
*/11 end;
1declare
2 job number; /*
job:定時器名稱*/3
begin
4dbms_job.submit(
5 job => job, /*
自動生成job_id
*/6 what => '
proc_add_test;
', /*
需要執行的儲存過程名稱或sql語句
*/7 next_date => sysdate+3/(24*60), /*
初次執行時間-下乙個3分鐘
*/8 interval => '
trunc(sysdate,
''mi
'')+1/(24*60)'/*
每隔1分鐘執行一次*/9
字段介紹
78語法:9
begin
10 dbms_job.broken(任務的唯一識別符號, true
, sysdate);
11commit;
12 end;
1begin
2 dbms_job.run(4);3
end;45
語法:6
begin
7dbms_job.run(任務的唯一識別符號);
8 end;
1begin
2 dbms_job.remove(4);3
commit;
4end;56
7begin
8dbms_job.remove(任務的唯一識別符號);
9commit;
10 end;
1 每天午夜12點 ''trunc(sysdate + 1)''2 每天早上8點30分 ''trunc(sysdate + 1) + (8*60+30)/(24*60)''
3 每星期二中午12點 ''next_day(trunc(sysdate ), ''''tuesday'''' ) + 12/24
''4 每個月第一天的午夜12點 ''trunc(last_day(sysdate ) + 1)''
5 每個季度最後一天的晚上11點 ''trunc(add_months(sysdate + 2/24, 3 ), ''q'' ) -1/24
''6 每星期六和日早上6點10分 ''trunc(least(next_day(sysdate, ''''saturday"
), next_day(sysdate,
"sunday"
))) + (6×60+10)/(24×60)''
7 每3秒鐘執行一次 '
sysdate+3/(24*60*60)
'8 每2分鐘執行一次 '
sysdate+2/(24*60)'9
101:每分鐘執行
11 interval => trunc(sysdate,'
mi') + 1/ (24*60) --每分鐘執行
12 interval => '
sysdate+1/(24*60)
' --每分鐘執行
13 interval => '
sysdate+1
' --每天
14 interval => '
sysdate+1/24
' --每小時
15 interval => '
sysdate+2/24*60
' --每2分鐘
16 interval => '
sysdate+30/24*60*60
' --每30秒 172
:每天定時執行
18 interval => trunc(sysdate+1) --每天凌晨0點執行
19 interval => trunc(sysdate+1)+1/24 --每天凌晨1點執行
20 interval => trunc(sysdate+1)+(8*60+30)/(24*60) --每天早上8點30分執行 213
:每週定時執行
22 interval => trunc(next_day(sysdate,'
星期一'))+1/24 --每週一凌晨1點執行
23 interval => trunc(next_day(sysdate,1))+2/24 --每週一凌晨2點執行 244
:每月定時執行
25 interval =>ttrunc(last_day(sysdate)+1) --每月1日凌晨0點執行
26 interval =>trunc(last_day(sysdate))+1+1/24 --每月1日凌晨1點執行 275
:每季度定時執行
28 interval => trunc(add_months(sysdate,3),'
q') --每季度的第一天凌晨0點執行
29 interval => trunc(add_months(sysdate,3),'
q') + 1/24 --每季度的第一天凌晨1點執行
30 interval => trunc(add_months(sysdate+ 2/24,3),'
q')-1/24 --每季度的最後一天的晚上11點執行 316
:每半年定時執行
32 interval => add_months(trunc(sysdate,'
yyyy
'),6)+1/24 --每年7月1日和1月1日凌晨1點 337
:每年定時執行
34 interval =>add_months(trunc(sysdate,'
yyyy
'),12)+1/24 --每年1月1日凌晨1點執行
Oracle Job定時任務的使用詳解
oracle中的job能為你做的就是在你規定的時間格式裡執行儲存過程,定時執行乙個任務 下面是乙個小案例,定時每15分鐘向一張表插入一條資料 一1.建立一張測試表 create table create table a8 a1 varchar2 500 tablespace dsp data pct...
oracle job 定時任務,定時執行
declare jobno number begin sys.dbms job.submit jobno,dayreport sysdate,trunc sysdate,mi 1 24 60 commit end 注 dayreport 為儲存過程名字 select from sys.user jo...
linux crontab定時任務詳解
1.為當前使用者建立cron服務 crontab e 例如 檔案內容如下 每隔1分鐘執行sql指令碼 1 mysql h127.0.0.1 uroot proot home undoner sync db.sql 2.檢視該使用者下的crontab服務是否建立成功 crontab l 3.啟動cro...