본문 바로가기

ORACLE/쿼리

JOB 등록

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회 실행

2. JOB 변경

1
2
3
4
5
6
7
8
9
10
BEGIN
   DBMS_JOB.CHANGE(JOB_NO, WHAT, NEXT_DATE, INTERVAL);
   COMMIT;
END;
 
예)
BEGIN
   DBMS_JOB.CHANGE(10, null, null, 'sysdate+3');
   COMMIT;
END;


 

참고 : COMMIT를 사용하게 되면 변경내용이 바로 적용된다.



3. JOB 조회

1
2
SELECT * FROM USER_JOBS;
SELECT * FROM DBA_JOBS;



4. JOB 삭제

1
2
3
4
5
BEGIN
   DBMS_JOB.REMOVE(JOB_NO);
   COMMIT;
END;
/



5. JOB 정지/재시작

1
2
3
4
5
EXECUTE DBMS_JOB.BROKEN(JOB_NO, TRUE);
EXECUTE DBMS_JOB.BROKEN(JOB_NO, FALSE);
 
예) EXECUTE DBMS_JOB.BROKEN(10, TRUE);
    EXECUTE DBMS_JOB.BROKEN(10, FALSE);



6. JOB 다음실행 시간 변경

1
2
3
EXECUTE DBMS_JOB.NEXT_DATE(JOB_NO, NEXT_DATE);
 
예) EXECUTE DBMS_JOB.NEXT_DATE(10, SYSDATE+1);



7. JOB 실행주기 변경

1
2
3
EXECUTE DBMS_JOB.INTERVAL(JOB_NO, INTERVAL);
 
예) EXECUTE DBMS_JOB.INTERVAL(10, 'sysdate + 7');



8. JOB 실행

1
EXECUTE DBMS_JOB.RUN(JOB_NO);