您好,登錄后才能下訂單哦!
做報表時,需要讀取大量數據和進行復雜的計算,往往比較耗時,所以一般會將結果存放在一張結果表中,報表直接讀取結果表,這樣就會很快了。此時,為了更新結果表,獲得最新數據,就需要定時執行一些SQL語句,此時可以采用:存儲過程+job的方式來達到目的,具體步驟如下
創建存儲過程:
create or replace procedure datawarn.P_TEST is
begin
delete from test_table;
insert test_table select * from table1; --sql塊,即你要執行的sql語句
commit; --sql塊
end;
執行存儲過程(手動調用一次存儲過程):
EXEC 存儲過程名;
創建JOB:
begin
dbms_scheduler.create_job (
job_name => 'J_TEST', --JOB名稱
job_type => 'STORED_PROCEDURE',
job_action => 'P_TEST', --存儲過程名
start_date => sysdate,
repeat_interval => 'FREQ=MINUTELY; INTERVAL=10', -- 十分鐘一次
comments => 'JOB說明'
);
end;
ps:創建job的時候要小心一點,仔細檢查,不要寫錯信息,如果報錯,再次創建會導致創建不成功,可以換個job名稱嘗試一下
--啟動
begin
dbms_scheduler.enable('J_TEST');
end;
執行
begin
dbms_scheduler.run_job(job_name => 'J_TEST',force => TRUE); -- true代表同步執行
end;
停止
dbms_scheduler.stop_job(job_name => 'J_TEST',force => TRUE);
--DI JOB查詢
select * from tsc_jobstatus
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。