JOB 등록 방법
1. 생성
DECLARE
v_job NUMBER; -> job 번호 들어감..자동으로
BEGIN
SYS.DBMS_JOB.SUBMIT
( v_job
,'USER.PROCEDURE_NAME;'
,TO_DATE('2012/08/08 05:00:00', 'YYYY/MM/DD HH24:MI:SS'), -- 다음실행 시간
,'TRUNC(SYSDATE+1)+ 1/24', -- 실행주기
, FALSE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(v_job));
COMMIT;
END;
2. 수정
EXEC DBMS_JOB.CHANGE(job, '프로시져명', 다음실행 시간, 'TRUNC(SYSDATE+1)+ 5/24');
전체 수정할 경우는 CHANGE로 나머지는 job순번을 기준으로 수정 파라메터만 다시 세팅하는 방식으로 수정
- 프로시져를 바꿀 경우
EXEC DBMS_JOB.WHAT(job, '프로시져명');
- 다음실행 시간을 바꿀경우
EXEC DBMS_JOB.NEXT_DATE(job, 다음실행 시간);
- 실행주기 바꿀 경우
EXEC DBMS_JOB.INTERVAL(job, '실행주기');
3. 즉시 실행
바로 실행 시키고자 할 경우
EXEC DBMS_JOB.RUN(job);
* 실행주기 설정
sysdate + 7 : 7일마다 실행
sysdate + 1/24 : 1시간 마다 실행
sysdate + 1/24/6 : 10분마다 실행
sysdate + 1/144 : 이것도 10분마다 실행
trunc(sysdate+1) : 매일밤 12시에 실행
trunc(sysdate+1) + 3/24 : 매일 오전 3시에 실행
next_day(trunc(sysdate), 'MONDAY') + 15/25 : 매주 월요일 오후 3시 정각에 실행
trunc(last_day(sysdate)) + 1 : 매월 1일 밤 12시에 실행
trunc(last_day(sysdate)) + 1 + 8/24 : 매월 1일 오전 8시에 실행
trunc(last_day(sysdate)) + 1 + 8/24 + 30/1440 : 매월 1일 오전 8시 30분에 실행
'DB' 카테고리의 다른 글
oracle 계정 생성 후 시노님(synonym) 걸기 (0) | 2022.04.08 |
---|---|
Oracle PID로 SQL찾기 (0) | 2022.04.08 |
oracle LOCK 걸린 테이블 확인 (0) | 2022.04.08 |
H2 설치 (0) | 2022.04.08 |
oracle pivot 기능 (0) | 2022.03.22 |