본문 바로가기
DB/oracle

oracle / dbms_scheduler

by 하하IT 2020. 4. 17.

1. 조회

  SELECT * FROM user_scheduler_jobs;

  SELECT * FROM dba_scheduler_jobs;

 

  SELECT NEXT_RUN_DATE,REPEAT_INTERVAL, a.* FROM user_scheduler_jobs a; ---신규 생성후   NextRunData , RepeatInterval 확인

 

 

2. 권한부여

  grant create any job to 유저명 ;

 

2. 신규등록

 

begin

 

dbms_scheduler.create_job(                                   -- 신규 JOB을 생성

job_name => 'insert_job_test1' ,                          -- dbms_scheduler 내에서 사용될 job 이름지정

job_type => 'plsql_block' ,                                    -- 5번줄에 적은 프로그램의 타입을 적음

job_action => 'begin SYS.SP_SEND_MAIL(msg_to  =>''kjh@ejudata.co.kr'',  msg_text=>   CM_GETHTML  ); end;' ,               -- 실제 실행될 프로그램을 적는 부분

start_date => to_date('201801010100','YYYYMMDDHH24MI')  ,                                -- 해당 job 이 처음 시작될 시간을 지정   현재시간 : systimestamp

repeat_interval => 'freq=secondly; interval=30' );        -- 반복할 주기를 지정

end;

/

 

   참고 : 실행주기

'freq=hourly ; interval=1'          -- 1시간

'freq=minutely ; interval=30'       -- 30분

'freq=secondly ; interval=5'        -- 5초

'freq=weekly ; interval=2'          -- 2주

 

 

3. 활성화

   exec dbms_scheduler.enable('insert_job_test1') ;  ---신규등록후 활성화는 꼭 해줘야함..

 

4. 실행

   exec dbms_scheduler.run_job('insert_job_test1') ;

 

5. 중지

   exec dbms_scheduler.disable ('insert_job_test1') ;

 

6. 삭제

  EXECUTE dbms_scheduler.drop_job('insert_job_test1') ;

 

 

7. 주기 수정

  exec DBMS_SCHEDULER.SET_ATTRIBUTE ( name => 'insert_job_test1' , attribute => 'repeat_interval', value => 'freq=hourly; interval=4');

'DB > oracle' 카테고리의 다른 글

CentOS6.5 / Oracle11g / The listener supports no services  (0) 2020.04.24
oracle / random YYYYMMDD  (0) 2020.04.22
oracle / job / batch  (0) 2020.04.17
oracle / expdp / impdp  (0) 2020.04.17
oracle / 암호화 대상칼럼조회  (0) 2020.04.17