반응형
DB 내에서 스케쥴링 수행 시 JOB 을 등록하여 수행한다.
1. 등록 쿼리
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT (
JOB => X ,
WHAT => '프로시저명;' ,
NEXT_DATE => SYSDATE + 1/24/60 -- 1분후 ,
INTERVAL => 'SYSDATE + 1/24/60/10' -- 6초 간격 ,
NO_PARSE => TRUE
);
END;
WHAT : JOB에서 수행할 프로시저명을 작성. 마지막에 ';' 은 필수.
NEXT_DATE : 다음 수행할 시간
INTERVAL : 수행 주기
(예시)
(1) 현재 시간으로 부터 하루 뒤 다음 날 현재 시간에 실행 (매일)
SYSDATE + 1
(2) 매일 새벽 5시
TRUNC(SYSDATE) + 1 + 5 / 24
(3) 매일 밤 10시
TRUNC(SYSDATE) + 20 / 24
(4) 1분 간격
SYSDATE + 1/24/60
2. 등록 잡 확인
SELECT * FROM USER_JOBS;
3. 잡 비활성
BEGIN
DBMS_JOB.BROKEN(23, false); -- 비활성화
COMMIT;
END;
4. 잡 수정
--------------------------------------
수정
--------------------------------------
BEGIN
DBMS_JOB.CHANGE(23, null, SYSDATE, 'SYSDATE + 1/24/60');
COMMIT;
END;
--------------------------------------
INTERVAL 변경
--------------------------------------
BEGIN
DBMS_JOB.INTERVAL(23, 'SYSDATE + 1/24/60/6');
END;
--------------------------------------
NEXT_DATE 변경
--------------------------------------
BEGIN
DBMS_JOB.NEXT_DATE(23, SYSDATE + 1/24/60);
END;
--------------------------------------
강제 실행
--------------------------------------
BEGIN
DBMS_JOB.RUN(23);
COMMIT;
END;
--------------------------------------
제거
--------------------------------------
BEGIN
DBMS_JOB.REMOVE(23);
COMMIT;
END;
--------------------------------------
프로시저 변경
--------------------------------------
EXECUTE DBMS_JOB.WHAT( 23,'프로시저명;' );
'Study > DB' 카테고리의 다른 글
[Oracle] reorg, hwm, shrink, movement (0) | 2021.01.11 |
---|---|
[Oracle] 통계정보 생성 (0) | 2021.01.11 |
MariaDB (MySQL) 자주 쓰는 날짜 함수 및 포맷 (0) | 2020.12.08 |
MariaDB (MySQL) 날짜 포맷 (0) | 2020.12.08 |
Maria DB (MySql) - Merge Insert Update (0) | 2017.09.28 |