一、查看现有的job
--查询用户job列表
SELECT * FROM USER_JOBS;
--查询dba所有job
SELECT * FROM DBA_JOBS;
--查询所有job列表
SELECT * FROM ALL_JOBS;
二、job操作
BEGIN
SYS.DBMS_JOB.ISUBMIT(
JOB => <JOB_ID>, -- 执行job的id
WHAT => '/* job的注释信息 */ BEGIN PROCEDURE_NAME(); END;', -- 要执行的脚本或者过程
NEXT_DATE => TO_DATE('2021/03/14 01:00:00','YYYY/MM/DD HH24:MI:SS'), --下一次执行的时间
INTERVAL => 'TRUNC(SYSDATE+1)+1/24' -- 执行周期 (此处为 每天1点执行一次 )
);
COMMIT;
END;
BEGIN
SYS.DBMS_JOB.CHANGE(
JOB => <JOB_ID>, -- 执行job的id
WHAT => '/* job的注释信息 */ BEGIN PROCEDURE_NAME(); END;', -- 要执行的脚本或者过程
NEXT_DATE => TO_DATE('2021/03/14 01:00:00','YYYY/MM/DD HH24:MI:SS'), --下一次执行的时间
INTERVAL => 'TRUNC(SYSDATE+1)+1/24' -- 执行周期 (此处为 每天1点执行一次 )
);
COMMIT;
END;
BEGIN
--禁用 job
SYS.DBMS_JOB.BROKEN(<JOB_ID>,TRUE);
-- 提交更改
COMMIT;
END;
BEGIN
-- 禁用job
SYS.DBMS_JOB.BROKEN(<JOB_ID>,TRUE);
-- 删除job
SYS.DBMS_JOB.REMOVE(<JOB_ID>);
-- 提交更改
COMMIT;
END;
BEGIN
-- 执行JOB
DBMS_JOB.RUN(JOB_ID);
COMMIT;
END;