ORACLE JOB 등록방법 (simple)

오라클 자체적으로 프로시저, 패키지, 등의 OBJECT 를 ORACLE JOB QUEUE에 등록후 스케쥴링 하여 사용할수 있습니다.

단, ORACLE PARAMETER 의 JOB_QUEUE_PROCESSES가 0보다 커야 JOB 스케쥴링이 동작한다는것에 유의하세요.

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 10 ; –변경

# DBMS_JOB 패키지의 프로시저

DBMS_JOB.SUBMIT( );          : JOB 등록

DBMS_JOB.REMOVE( );        : 제거

DBMS_JOB.CHANGE( );        : 변경

DBMS_JOB.NEXT_DATE( );   : JOB의 다음 수행시간 변경

DBMS_JOB.INTERVAL( );       : JOB의 실행 CYCLE 지정

DBMS_JOB.WHAT( );              : JOB 수행 으로 등록된 OBJECT 를 변경

DBMS_JOB.RUN( );                : JOB을 수동으로 실행

BEGIN
DBMS_JOB.RUN(‘4’);  — JOB 조회 후 번호 기술
END;

 

# SUBMIT 프로시져를 이용한 JOB등록 예제

DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT (
JOB       => X
,WHAT      => ‘실행할 OBJECT’
,NEXT_DATE => TO_DATE(’17-11-2007 09:00:00′,’DD/MM/YYYY HH24:MI:SS’)
,INTERVAL  => ‘TRUNC(SYSDATE) + 1 + 9/24’
,NO_PARSE  => TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE (‘JOB NUMBER IS:’|| TO_CHAR (X)) ;
END;

# INTERVAL을 세팅

1. 10분간격으로 실행

SYSDATE + 1/24/6

2. 현재 시간으로 부터 다음 날 현재 시간에 실행 (매일)

SYSDATE + 1    — 지금이 오후3시면 다음날 오후 3시 에 매일매일 실행

3. 매일 새벽 5시

TRUNC(SYSDATE) + 1 + 5 / 24

4. 매일 밤 10시

TRUNC(SYSDATE)  + 20 / 24

# JOB의 확인

SELECT * FROM USER_JOBS;

NEXT_DATE 을 통해 다음 실행 예정인 시각을 확인

# 자세한 사항은 아래를 참고

HTTP://WWW.PSOUG.ORG/REFERENCE/DBMS_JOB.HTML