-步驟:建表建立自增seq序列
建立乙個簡單的插入資料儲存
建立dbms_job.submit()定時任務
定時任務移除
--1.table,測試表
create
table person_20201011(
id number primary
key,
name varchar2(10)
notnull
);
--2.sequence
create sequence seq_pid;
--3.procedure
create
orreplace
procedure xperson is
begin
insert
into person_20201011
values
(seq_pid.nextval,
'admin'
|| seq_pid.currval)
;--表有兩個字段,其中插入的第乙個字段根據主鍵id序列自增,每次使用序列+1,第二個欄位的值為admin連線上序列的當前值
commit
;--記得提交事務(插入更新等操作)
end;
首先要了解一下dbms_job.submit(),以及它的引數和型別,是怎麼使用的
–submit 有四個引數,引數一:job(out模式的binary_integer型別),是用來提交定時任務時接受任務編號的(建立時候系統分配的)
引數二:varchar2,要呼叫的儲存過程的名稱;例如**『過程名字();』**
引數三:date,第一次執行任務的時間
引數四:interval(varchar2),任務執行的時間間隔
引數四是乙個字串,但是字串必須是date型別;例如』sysdate+1』表示隔一天執行一次
間隔時間的計算方式,引數四-引數三;
--4.dbms_job 定時任務建立 定時插入資料 (定義並提交定時任務)
declare
jid binary_integer;
--宣告一下系統分配的編號,這個資料型別要注意,詳情請看上面的引數說明
begin
dbms_job.submit(jid,
'xperson();'
,sysdate,
'sysdate+10/(24*60*60)');
--第乙個引數是系統分配的編號,
--注意引數二是儲存過程的呼叫,後面要有括號和分號,它是乙個字串型別的
--引數三,就是開始的時間了,我這裡使用了當前系統時間
--還有就是第四個引數時間的計算也是字串型別的,我這裡使用了每隔10秒跑一次定時
dbms_output.put_line(
'系統分配的編號:'
|| jid)
;--輸出一下這個系統分配的編號,方便等會移除定時job等
dbms_job.run(jid)
;--執行定時任務
end;
在這邊也可以看到這個定時任務的系統分配額編號
定時任務的編號檢視
這邊也可以看到編號
接下來我們看一下效果
--刪除dbms_job定時任務,其中remove括號中的資料是系統分配給定時任務的編號,具體檢視看第四步的操作
begin
dbms_job.remove(32)
;end
;
這時我們的定時任務就移除了就到這裡
mysql 儲存過程 定時任務
建立儲存過程 create procedure if not exists test begin insert into test.test time values curdate end set global event scheduler 0 設定任務器 開關 1開 0關 show variab...
Oracle定時任務呼叫儲存過程
刪除core,cmnet,sp,miq,4張表一周之前的資料 create or replace procedure del alarm others cancel info as begin delete m core cancel where sysdate 7 ttime delete m c...
PLSQL建立Oracle定時任務
plsql建立oracle定時任務 1 建立任務執行的儲存過程,如名稱為yxtestjob,向測試表中插入資料 2 定時器對應的dbms jobs資料夾,右鍵新建 new 3 建立任務 注 job的定時執行和時間間隔說明 在使用oracle最匹配的工具plsql的時候,如果用plsql建立定時器呢?...