Oracle 정시 퀘 스 트 dbmsscheduler

1. 프로필
  Oracle 10g 전에 DBMS 를 통 해JOB 가 정시 퀘 스 트 관리 하기;
  10g 이후 에는 DBMS 를 추천 합 니 다.SCHEDULER 는 더 강력 한 기능 과 유연 한 메커니즘 을 제공 하기 때문에 정시 임 무 를 관리 합 니 다.
2. 필요 한 권한  CREATE JOB          -- (DBMS SCHEDULER 를 실행 하려 면 create job 권한 이 필요 합 니 다)  CREATE EXTERNAL JOB -- (선택 가능, 운영 체제 명령 을 실행 하 는 job 를 만 들 때 필요)     # 사용자 가 가지 고 있 는 캐릭터 와 캐릭터 에 포 함 된 권한 조회  select * from role_sys_privs where role in (     select granted_role from dba_role_privs where grantee='SCOTT'   ) order by role;   # 검색 은 사용자 에 게 직접 권한 을 부여 합 니 다.  select * from dba_sys_privs where grantee='SCOTT'; 
3. 간단 한 데모 3.1 생 성 JOB
create table test_t1(id int, create_date date);
create or replace procedure test_p1
is
  v_maxId test_t1.id%type := 1;
begin
  select nvl(max(id), 0) into v_maxId from test_t1;
  insert into test_t1 values(v_maxId + 1, sysdate);
  commit;
end test_p1;
/
declare
  v_count int := 0;
begin
  select count(*) into v_count from user_scheduler_jobs where job_name='TEST_JOB1';
  if v_count > 0 then
    dbms_scheduler.drop_job('TEST_JOB1');
  end if;
  dbms_scheduler.create_job (
    job_name        => 'test_job1',
    job_type        => 'STORED_PROCEDURE',
    job_action      => 'TEST_P1',
    start_date      => sysdate,
    repeat_interval => 'FREQ=MINUTELY;INTERVAL=1',
    enabled         => true
  );
end;
/

\ # 매개 변수 설명
job_name        :   ,     
job_type        :   ,     (
                    PLSQL_BLOCK,      --     PL/SQL   
                    STORED_PROCEDURE, --         
                    EXECUTABLE,       --         
                    CHAIN             --     CHAIN
                  )
job_action      :   ,     ,  job_type    
start_date      :   ,       ,          
repeat_interval :   ,     ,           (
                    FREQ=MINUTELY; --       ,     YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY
                    INTERVAL=1     --       
                  )
enabled         :   ,       
상세 한 매개 변 수 는 참고 할 수 있 습 니 다.  http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_sched.htm#ARPLS72960 
3.2 JOB 의 실행 상황 보기
-- 만들어 진 JOB 보기
select job_name, job_type, enabled, state from user_scheduler_jobs;
-- JOB 실행 로그 보기
select log_id, log_date, status from user_scheduler_job_run_details where job_name='TEST_JOB1';
3.3 JOB exec dbms scheduler. drop job ('TEST JOB 1') 를 삭제 합 니 다.
\ # 관련 링크http://blog.itpub.net/7607759/viewspace-610951  http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_sched.htm#ARPLS72300

좋은 웹페이지 즐겨찾기