Oacle 정시 작업

아래 스 크 립 트 는 실행 할 수 있 습 니 다. 모두 제 가 업무 중 에 사용 한 스 크 립 트 입 니 다. 직접 테스트 합 니 다.
 1 --        
 2 declare
 3   job number;
 4 BEGIN
 5   DBMS_JOB.SUBMIT(  
 6         JOB => job,  /*    JOB_ID*/  
 7         WHAT => 'GET_WARNING_INFO(2, 202, ''2,44,11'');',  /*            SQL  */  
 8         NEXT_DATE => sysdate,  /*      -    */  
 9         INTERVAL => 'trunc(sysdate,''mi'')+1/(24*60)' /*  1      */
10       );  
11   commit;
12 end;
13 --      
14 begin
15   dbms_job.remove(83);  /*       job,    job id*/
16   commit;
17 end;
18 
19 ----------------------------------           start-----------------------
20 --                
21  DECLARE   
22   v_job NUMBER;    
23  BEGIN
24    SELECT t.JOB INTO v_job  FROM dba_jobs t WHERE t.WHAT = 'NON_FLOW_PKG.SAVE_NON_FLOW_ACT_FOR_SIGN;' 
25    dbms_job.run(v_job);     --      
26   --dbms_job.broken(v_job, true, sysdate);    --           true:   
27  commit;   
28 end;
29 ----------------------------------           end--------------------------------
30 
31 ----------------------------------        start--------------------------------
32 --
33 --         (25 2012/9/14 1 11:06:17 0 n)   (25 4000/1/1 00:00:00 0 y)     
34 -- job:    Id   next_date:              ,4000-1-1             failures:            broken: Y:   N:   
35  select what,job, next_date, next_sec, failures, broken from user_jobs ;  --          
36  
37   SELECT t.WHAT,job, next_date, next_sec, failures, broken FROM dba_jobs t    --          
38    WHERE t.WHAT = 'NON_FLOW_PKG.SAVE_NON_FLOW_ACT_FOR_SIGN;'   --      
39    OR t.JOB = '21';    --      
40  --                10                   ,            ,    ,  0      10 
41  --      
42 show parameter job_queue_processes;
43 --    0  
44 alter system set job_queue_processes=10;
45 
46 ----------------------------------        end--------------------------------
47   

dba_jobs 표 의 필드 의미:
JOB 퀘 스 트 의 유일한 사인 코드
LOG_USER 퀘 스 트 를 제출 한 사용자
PRIV_USER 가 작업 권한 을 부여 한 사용자
SCHEMA_USER 가 사용자 에 게 문법 분석 을 하 는 사용자 모드
LAST_DATE 가 마지막 으로 미 션 을 성공 적 으로 수행 한 시간 입 니 다.
LAST_SEC 가 마지막 으로 미 션 을 성공 적 으로 수행 한 시간 은 분 초 입 니 다.
THIS_DATE 가 실행 중인 작업 의 시작 시간 이 없 으 면 비어 있 습 니 다.
THIS_SEC 가 수행 하고 있 는 작업 의 시작 시간 은 분 초 이 며, 없 으 면 비어 있 습 니 다.
NEXT_DATE 다음 정시 퀘 스 트 수행 시간
NEXT_SEC 가 다음 정시 미 션 을 수행 하 는 시간 은 분 초 입 니 다.
TOTAL_TIME 현재 퀘 스 트 수행 에 필요 한 시간, 단위: 초
BROKEN 표지 파라미터, Y 는 작업 이 중단 되 었 음 을 표시 합 니 다. 이후 에는 실행 하지 않 습 니 다.
INTERTAL 은 다음 정시 작업 을 수행 할 시간 표현 식 을 계산 합 니 다.
FAILURES 현재 정시 퀘 스 트 실행 실패 총 횟수
WHAT 작업 을 수행 하 는 PL / SQL 코드 블록
NLS_ENV 작업 이 실 행 된 NLS 세 션 설정
MISC_ENV 정시 작업 이 실행 되 는 다른 매개 변수 설정
INSTANCE 표지 현재 작업 실행 제한 여부, 0 제한 없 음
INTERVAL 부분 매개 변수 값 예제:
매일 자정 12 시: 'TRUNC (SYSDATE + 1)' 매일 오전 8 시 30 분: 'TRUNC (SYSDATE + 1) + (860 + 30) / (2460)' 매주 화요일 낮 12 시: 'NEXTDAY (TRUNC (SYSDATE), 'TUESDAY') + 12 / 24 '매달 첫날 자정 12 시:' TRUNC (LAST DAY (SYSDATE) + 1) '분기 마지막 날 밤 11 시:' TRUNC (ADD MONTHS (SYSDATE + 2 / 24, 3), 'Q' (Q) - 1 / 24 '매 별 6 일과 일 오전 6 시 10 분:' RUNC (LEAST DAY (SYSDATE, 'SATURDAY'), 넥 스 트 DAY DAY (NEXT DAY DAY), NEXT DAT DAY DAY (DAY DAY DAY DAY DAY DAY), NEXT DAY DAY DAY (TRUNC (TRUNC (SYSDY (SYSDATE, "SUNDAY") + (6)×60+10)/(24×60) '매달 25 일 00: 00 에 실 행 됩 니 다.' TRUNC (LAST DAY (SYSDATE) + 25) '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: 분당 Interval = > TRUNC (sysdate, mi) + 1 / (24 * 60) 또는 Interval = > sysdate + 1 / 1440 을 실행 합 니 다.
2: 매일 정시 실행 예: 매일 새벽 1 시 에 Interval = > TRUNC (sysdate) + 1 + 1 / (24)
3: 매주 정시 실행 예: 매주 새벽 1 시 에 Interval = > TRUNC (next day (sysdate, '월요일') + 1 / 24
4: 매월 정시 실행 예: 매월 1 일 새벽 1 시 실행 Interval = > TRUNC (LAST DAY (SYSDATE) + 1 / 24
5: 매 분기 정시 집행 예 를 들 어 매 분기 첫날 새벽 1 시 에 Interval = > TRUNC (ADD MONTHS (SYSDATE, 3), 'Q') + 1 / 24
6: 반년 마다 정시 집행 예: 매년 7 월 1 일과 1 월 1 일 새벽 1 시 Interval = > ADD MONTHS (trunc (sysdate, yyy), 6) + 1 / 24
7: 매년 정시 집행 예: 매년 1 월 1 일 새벽 1 시 에 Interval = > ADD MONTHS (trunc (sysdate, yyy), 12) + 1 / 24

좋은 웹페이지 즐겨찾기