본문 바로가기

템플릿

Oracle. SCHEDULER 스케쥴러 활용 1

매 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