Study/DB

[Oracle] Job 등록 / 스케쥴링

LoonyHyun 2020. 12. 23. 11:25
반응형

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,'프로시저명;' );

 

출처 : meyouus.tistory.com/263

'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