oracle job 생성

2014. 1. 28. 09:53
반응형
오라클 JOB CREATE
-- 프로시저 생성
CREATE OR REPLACE PROCEDURE INSERT_TEST_JOB
IS
BEGIN
   INSERT INTO TEST_JOB (NUM, REGDATE)
   VALUES ( (SELECT MAX (NVL (NUM, 0)) + 1 FROM TEST_JOB), SYSDATE);
   COMMIT;
END INSERT_TEST_JOB;

--프로시저 삭제
DROP PROCEDURE insert_test_job;

-- JOB 생성
DECLARE
   JOBNO   NUMBER;
BEGIN
   DBMS_JOB.SUBMIT (JOBNO,
                    'USERS.INSERT_TEST_JOB;',
                    SYSDATE + 1 / 24 / 60,                  -- job이 실행될 시간 1분후
                    'TRUNC(ADD_MONTHS(SYSDATE, 1))+6/24', -- job이 실행되는 간격  매달 1일 6시
                    FALSE);
   COMMIT;
END;
* job Interval 설정 ex) SYSDATE+7 : 7일에 한번 씩 job 수행 SYSDATE+1/24 : 1시간에 한번 씩 job 수행 SYSDATE+30/ : 30초에 한번 씩 job 수행(24: 시간 당, 1440(24x60):분 당, 86400(24x60x60):초 당 ) TRUNC(SYSDATE, 'MI')+8/24 : 최초 job 수행시간이 12:29분 일 경우 매시 12:29분에 job 수행 TRUNC(SYSDATE+1) : 매일 밤 12시에 job 수행 TRUNC(SYSDATE+1)+3/24 : 매일 오전 3시 job 수행 NEXT_DAY(TRUNC(SYSDATE),'MONDAY')+15/25 : 매주 월요일 오후 3시 정각에 job 수행 TRUNC(LAST_DAY(SYSDATE))+1 : 매월 1일 밤 12시에 job 수행 TRUNC(LAST_DAY(SYSDATE))+1+8/24+30/1440 : 매월 1일 오전 8시 30분
--JOB 삭제
execute dbms_job.remove(잡번호);

--JOB 조회
SELECT WHAT, JOB, NEXT_DATE, NEXT_SEC, FAILURES, BROKEN FROM USER_JOBS;

* job queue 정보 VIEWING
 SELECT * FROM DBA_JOBS
 SELECT * FROM USER_JOBS
 SELECT * FROM ALL_JOBS
반응형

+ Recent posts