매 2시간마다 RESERVE(예약자)의 STAT(예약상태)에 대한 값을 '예약만료'로 바꿔야한다.
GRANT CREATE ANY JOB TO 사용자;
로 접근권한을 부여
프로시저 생성 (현재 시간을 변수로 받는다)
CREATE OR REPLACE PROCEDURE RES_DISABLE_PROC
(
YYYY IN VARCHAR2,
MMDD IN VARCHAR2,
HH IN VARCHAR2
)
AS
BEGIN
UPDATE RESERVE SET STAT = '예약종료'
WHERE
YYYY = YEAR AND
MMDD = SDATE AND
HH = TIME;
END;
/
삭제
DROP PROCEDURE RES_DISABLE_PROC;
스케쥴러 생성 (익일 오후 10시 10분부터 2시간간격으로 10+2n시의 시간정보를
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
JOB_NAME => 'RES_DISABLE_JOB'
, START_DATE => TRUNC(SYSDATE+1)+61/144
, REPEAT_INTERVAL => 'FREQ = HOURLY; INTERVAL = 2;'
, END_DATE => NULL
, JOB_TYPE => 'PLSQL_BLOCK'
, JOB_ACTION => 'BEGIN
RES_DISABLE_PROC(TO_CHAR(SYSDATE,''YYYY''), TO_CHAR(SYSDATE,''MMDD''), CONCAT(TO_CHAR(SYSDATE,''HH24''),''00'')); END;'
, COMMENTS => '자동 예약만료'
);
DBMS_SCHEDULER.ENABLE('RES_DISABLE_JOB');
END;
/
조회
SELECT * FROM user_scheduler_jobs; /*등록여부*/
SELECT * FROM user_scheduler_job_run_details; /*실행내역*/
삭제
EXEC DBMS_SCHEDULER.DROP_JOB('RES_DISABLE_JOB');
'템플릿' 카테고리의 다른 글
Oracle. SCHEDULER 스케쥴러 활용2 (0) | 2022.10.18 |
---|