-- 查看系統定時任務
SELECT * FROM DBA_JOBS
-- 新建定時任務
DECLARE
jobno NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT(
JOB => jobno, /*自動生成JOB_ID*/
WHAT => 'qmcb_ls_data;', /*需要執行的存儲過程名稱或SQL語句*/
NEXT_DATE => SYSDATE, /*初次執行時間-立即執行*/
INTERVAL => 'TRUNC(LAST_DAY(SYSDATE))+23/24' /*每月最后一天晚9點*/
);
COMMIT;
END;
-- 啟動/停止定時任務,next_date是4000-1-1表示這個腳本已經是停止狀態
BEGIN
DBMS_JOB.BROKEN(4682, TRUE, SYSDATE); --停止
-- DBMS_JOB.RUN(4682); 啟動
-- DBMS_JOB.REMOVE(4682); 刪除
COMMIT;
END;
定時任務打包
create or replace package body pkg_tools is
procedure trun_ftplog IS
out_count INTEGER :=0;
v_sql VARCHAR2(1024);
BEGIN
SELECT COUNT(1) into out_count FROM ETL_JOB_INST WHERE state='10D';
IF out_count=0 then
v_sql := 'TRUNCATE TABLE ETL_CPT_FTP_LOG';
EXECUTE IMMEDIATE v_sql;
END IF;
end trun_ftplog;
end pkg_tools;
參考文檔:
來源:https://www.cnblogs.com/iupoint/p/10824125.html