oracle 定時任務

2022-08-28 12:18:14 字數 1802 閱讀 2519

1)、按分鐘執行

每分鐘執行

trunc(sysdate,'mi') + 1/(24*60)

每五分鐘執行

trunc(sysdate,'mi') + 5/(24*60)

2)、按小時執行

每小時執行

trunc(sysdate,'mi') + 1/24

每隔五小時執行

trunc(sysdate,'mi') + 5/24

3)、按天執行

每天的凌晨2點執行

trunc(sysdate) + 1 +2/(24)

例如:每隔5天的凌晨2點執行

trunc(sysdate) + 5 +2/(24)

4)、按周執行

每週一凌晨2點執行

trunc(next_day(sysdate,2))+2/24 --星期一(一周的第二天)

每週六凌晨2點執行

trunc(next_day(sysdate,7))+2/24 --星期六(一周的第七天)

5)、 按月執行

每月1日凌晨2點執行

trunc(last_day(sysdate))+1+2/24

每月5日上午10點執行

trunc(last_day(sysdate))+5+10/24

6)、 按季度執行

每季度的第一天凌晨2點執行

trunc(add_months(sysdate,3),'q') + 2/24

7)、 每半年定時執行

每年7月1日和1月1日凌晨2點

add_months(trunc(sysdate,'yyyy'),6)+2/24

--select trunc(sysdate,'yyyy') from dual;

--select add_months(trunc(sysdate,'yyyy'),6) from dual;

8)、 每年定時執行

每年1月1日凌晨2點執行

add_months(trunc(sysdate,'yyyy'),12)+2/24

補充:1、

next_day(d,number)

--時間點d開始,下乙個星期幾的日期 

--星期日:1,星期一:2,星期二:3,星期三:4,星期四:5,星期五:6,星期六:7

2、add_months(d,n)

--返回時間點d再加上n個月

3、last_day(d)

--時間點d當月份最後一天

4、trunc(d[,fmt])

--對日期作擷取

--舉例當前時間是:2012-08-06  下午 04:39:00

select trunc(sysdate,'mm') from dual

--返回2012-8-1當月的第一天

select trunc(sysdate,'yy') from dual

--返回2012-1-1當年第一天

select trunc(sysdate,'dd') from dual

--返回2012-8-6當天

select trunc(sysdate,'day') from dual

--返回2012-8-5當周第一天

select trunc(sysdate) from dual

--返回2012-8-6不填引數就預設是當天

select trunc(sysdate,'hh') from dual

--返回2012-8-6下午04:00:00當前小時

select trunc(sysdate,'mi') from dual

--返回2012-8-6下午04:39:00當前分鐘

oracle 定時任務

在pl sql 中執行命名 第一步 開啟乙個sql window 視窗,建立一張測試表 create table test date a date 第二步 建立儲存過程 create or replace procedure test myproc asbegininsert into test d...

oracle定時任務

1.建立儲存過程 create orreplace procedure proc test isbegin insert into test values 1 2 commit end prc job test 2.建立任務 declare job number begin sys.dbms job...

Oracle定時任務

建立表 create table test carno varchar2 30 carinfoid number 建立儲存過程 create or replace procedure pro test ascarinfo id number begin select s carinfoid.next...