오라클 JOB / 오라클 잡의 배치 시간 설정
오라클 JOB 을 잡을 때
SUBMIT을 넣을 데이터로 활용하기 위한 SQL
/* 최초 배치 시간 지정 */
-- 특정 기간 배치설정(매월 3일 3시 30분 ~ 7일 3시 30분)
-- 오라클 JOB의 INTERVAL이 최대 200 이기 때문에 최대한 붙여써야함.
SELECT CASE
WHEN TO_CHAR(SYSDATE, 'DD') >= '03' AND TO_CHAR(SYSDATE, 'DD') < '07' THEN TRUNC(SYSDATE, 'DD')+1+3/24/60+30/24/60
ELES ADD_MONTHS(TRUNC(SYSDATE, 'MM', +1)+2+3/24+30/24/60
END
FROM DUAL
;
-- 월별 3:30 배치
SELECT TRUNC(SYSDATE, 'DD') + 3/24 + 30/24/60 FROM DUAL;
-- 시간별(정각)
SELECT TRUNC(SYSDATE, 'HH24') +1/24 FROM DUAL;
-- 시간별(정각+3)
SELECT TRUNC(SYSDATE, 'HH24') +1/24 +3/24/60 FROM DUAL;
-- 분당 (1, 5, 10)
SELECT TRUNC(SYSDATE, 'HH24') +1/24 +1/24/60 FROM DUAL;
SELECT TRUNC(SYSDATE, 'HH24') +1/24 +5/24/60 FROM DUAL;
SELECT TRUNC(SYSDATE, 'HH24') +1/24 +10/24/60 FROM DUAL;
-- 다음 일요일
SELECT SYSDATE - TO_CHAR(SYSDATE, 'D') + 8 AS NEXT_SUNDAY
/* 다음 배치 시간 */
-- 월별
SELECT ADD_MONTHS(TRUNC(SYSDATE, 'DD'), +1) +3/24 +30/24/60 FROM DUAL;
-- 분당
SELECT TRUNC(SYSDATE, 'MI')+1/24/60 FROM DUAL;
SELECT TRUNC(SYSDATE, 'MI')+5/24/60 FROM DUAL;
SELECT TRUNC(SYSDATE, 'MI')+10/24/60 FROM DUAL;