[Oracle] job 관리 방법(job scheduler)
예)
declare
job_no number;
begin
dbms_job.submit(job_no, 'SP_UPDATE_DPT();', sysdate, 'sysdate + 1');
end;
참고 : 실행주기 계산
'sysdate + 7' : 일주일에 1회 실행
'sysdate + 1' : 하루에 1회 실행
'next_day(sysdate, ''TUESDAY'')' : 매주 화요일에 실행
'null' : 1회 실행
'sysdate + 1/24' : 1시간에 1회 실행
'sysdate + 1/24/60' : 1분에 1회 실행
'trunc(sysdate+1) + 2/24' : 다음날 2시에 1회 실행
'TRUNC (SYSDATE + 1) + 6 / 24' : 다음날 아침 6시에 1회 실행
2. JOB 변경
예)
BEGIN
DBMS_JOB.CHANGE(10, null, null, 'sysdate+3');
COMMIT;
END;
참고 : COMMIT를 사용하게 되면 변경내용이 바로 적용된다.
3. JOB 조회
예)
EXECUTE DBMS_JOB.BROKEN(10, TRUE);
EXECUTE DBMS_JOB.BROKEN(10, FALSE);
6. JOB 다음실행 시간 변경
예) EXECUTE DBMS_JOB.NEXT_DATE(10, SYSDATE+1);
7. JOB 실행주기 변경
예) EXECUTE DBMS_JOB.INTERVAL(10, 'sysdate + 7');
8. JOB 실행