ORACLE DBMS_SCHEDULER 시간 설정 문의 0 2 6,065

by 김재성 [Oracle 기초] ORACLE DBMS_SCHEDULER [2014.04.13 15:55:03]



안녕하세요.

ORACLE DBMS_SCHEDULER 시간 설정 문의가 있어 글을 씁니다.

제가 하고자 하는건 매일 10:00 부터 13:00까지 매초마다 프로시저를 실행하는 건데요...


BEGIN
   sys.DBMS_SCHEDULER.create_job (
  job_name   => 'upd_test'
    , job_type   => 'PLSQL_BLOCK'
    , job_action     => 'BEGIN upd_test'; END;'
    , start_date     => TO_TIMESTAMP_TZ (TO_CHAR (SYSTIMESTAMP, 'YYYY-MM-DD')|| '10:00:00 ROK'
      , 'YYYY-MM-DD HH24:MI:SS TZR')
    , repeat_interval   => 'freq=secondly; interval=1'
    , end_date   => TO_TIMESTAMP_TZ (TO_CHAR (SYSTIMESTAMP, 'YYYY-MM-DD') || '13:00:00 ROK'
  , 'YYYY-MM-DD HH24:MI:SS TZR')
    , auto_drop     => FALSE
    , enabled   => TRUE);
END;

이렇게 하니 최초 실행은 되는데
매일매일 실행이 되지않고, 그 시간대에 실행되고 다음날에는 실행되지 않습니다.

매일매일 실행되게 하려면 어떻게 하면 좋을까요?
by 왕지락 [2014.04.16 09:09:20]

저 같은 경우는 스케쥴, 프로그램을 등록하고 JOB을 생성해서 돌립니다.
제가 사용하고 있는 예시 입니다.

/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
/* 1. 스케쥴 생성 (매일 9시 정각) */
BEGIN
   DBMS_SCHEDULER.CREATE_SCHEDULE
   (
  SCHEDULE_NAME    => '스케쥴명 지정',
  START_DATE    => SYSTIMESTAMP,
  END_DATE => NULL,
  REPEAT_INTERVAL  => 'FREQ=DAILY;INTERVAL=1;BYHOUR=09;BYMINUTE=0;BYSECOND=0;',
  COMMENTS => '매일 오전 09시 정각'
   ); 
END;
/

/* 2. 프로그램 생성 */ 
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
   PROGRAM_NAME    => 'program name',     -- 사용자 지정
   PROGRAM_ACTION => '/* comments*/
  BEGIN
 실행할 프로시져
  END;',
   PROGRAM_TYPE    => 'PLSQL_BLOCK',
   COMMENTS    => 'TEST');
END;

/* 3. JOB 생성 */

BEGIN
DBMS_SCHEDULER.CREATE_JOB (
   JOB_NAME     =>  'JOB명지정',
   PROGRAM_NAME     =>  '등록한 JOB명',
   SCHEDULE_NAME    =>  '등록한 스케쥴명'
   COMMENTS =>  'JOB COMMENTS 작성');
END;


by 김재성 [2014.04.16 13:42:34]


왕지락님 답변 감사드립니다.

그런데... 제가 하고 싶은건 단순히 메일 몇시에 실행해라가 아닌...

한 뎁스 더 들어간 매일 몇시부터 1초마다 이렇게 하고 싶은거라서요...ㅜㅜ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입