功能說明: 要求實(shí)現(xiàn)數(shù)據(jù)庫中的表數(shù)據(jù)每天午夜時(shí)分定時(shí)自動(dòng)執(zhí)行數(shù)據(jù)遷移動(dòng)作。
1. 創(chuàng)建歷史數(shù)據(jù)存儲(chǔ)表(USER_TAB_BAK), 要求與源表(USER_TAB)結(jié)構(gòu)一致;
for example:
create table USER_TAB_BAK(ID integer, varchar2(200),createdate date);
2. 編寫數(shù)據(jù)遷移存儲(chǔ)過程;
CREATE OR REPLACE USER_TAB_Data_Transfer as
begin
Insert Into USER_TAB_BAK
Select * From USER_TAB Where to_date(createdate,'yyyy-MM-dd')
< to_date('2007-01-01', 'yyyy-MM-dd');
Delete From USER_TAB Where to_date(createdate,'yyyy-MM-dd')
< to_date('2007-01-01', 'yyyy-MM-dd');
end;
3. 創(chuàng)建Job, 定時(shí)(每天午夜時(shí)分)執(zhí)行存儲(chǔ)過程;
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
(
job => X
,what => 'USER_TAB_Data_Transfer;'
,next_date => to_date('01-07-2007 00:00:00','dd/mm/yyyy hh24:mi:ss')
,interval => 'TRUNC(SYSDATE+1)'
);
END;
4. 啟動(dòng)Job.
begin
SYS.DBMS_JOB.RUN(:X);
end;
(注:可以借助 Toad 或 DBArtisan 等工具快速創(chuàng)建Job,以減小錯(cuò)誤的發(fā)生。)
附加:
Toad for Oracle 創(chuàng)建定時(shí)任務(wù)步驟:
a. 首先登錄Toad, 點(diǎn)擊菜單欄中的“Schema Browser”項(xiàng), 再在打開的窗口中先找到“P() Procs”項(xiàng),
以創(chuàng)建存儲(chǔ)過程。
b. 存儲(chǔ)過程創(chuàng)建成功之后, 再找到“Jobs”項(xiàng);
c. 進(jìn)入“Jobs”標(biāo)簽頁, 點(diǎn)擊鼠標(biāo)右鍵菜單中的 “Create Job”開始創(chuàng)建定時(shí)任務(wù)。
d. 在窗口頁面中,需要輸入自定義的任務(wù)名稱, 所執(zhí)行的存儲(chǔ)過程名稱, 以及設(shè)定開始執(zhí)行的時(shí)間和定時(shí)執(zhí)行的時(shí)間間隔。
e: 最后點(diǎn)擊“OK”, Oracle 定時(shí)任務(wù)就創(chuàng)建成功了!